Link List
Link List
newHead = head
if head.next:
newHead = self.reverseList(head.next)
head.next.next = head
head.next = None
return newHead
class ListNode:
def __init__(self,value):
self.value = value
self.next = None
class Solution:
def deleteNode(self, node:ListNode):
node.val = node.next.val
node.next = node.next.next
return
class ListNode:
def __init__(self,value):
self.value = value
self.next = None
class Solution:
def hasCycle(self, head: Optional[ListNode]) -> bool:
slow, fast = head, head
class Solution:
def mergeTwoLists(self, list1: ListNode, list2: ListNode) -> ListNode:
dummy = node = ListNode()
return dummy.next
class Solution(object):
def middleNode(self, head):
slow_pointer = head
fast_pointer = head
return slow_pointer
class ListNode:
def __init__(self,value):
self.value = value
self.next = None
class Solution:
def isPalindrome (self, head: ListNode) -> bool:
fast = head
slow = head
# find middle (slow)
# check palindrome
left, right=head, prev
while right:
if left.val != right.val:
return False
left= left.next
right = right.next
return True
class ListNode:
def __init__(self,value):
self.value = value
self.next = None
class Solution:
def removeElements (self, head: ListNode, val: int) -> ListNode:
dummy= ListNode (next-head)
prev, curr = dummy, head
while curr:
nxt = curr.nxt
if curr.val == val:
prev.next = nxt
else:
prev = curr
curr = nxt
return dummy.next