input: Write a function to delete a specified node from a linked list without using its data. The function should handle all edge cases like deleting the head node, or the node not being present in the linked list. If the node to be deleted is not found, the function should return False, otherwise it should return True.
  assert deleteNode(createLinkedList([1, 2, 3]), 2)==True
  assert deleteNode(createLinkedList([1, 2, 3]), 1)==True
  assert deleteNode(createLinkedList([1, 2, 3]), 3)==True
  assert deleteNode(createLinkedList([1, 2, 3]), 4)==False
  assert deleteNode(createLinkedList([]), 1)==False
output: def deleteNode(head, value):
      if not head:
          return False
      if head.val == value:
          head = head.next
          return True
      current = head
      while current.next:
          if current.next.val == value:
              current.next = current.next.next
              return True
          current = current.next
      return False