203.移除链表元素
代码随想录代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文
https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE
class Solution:
def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:
dummy_head = ListNode(next = head)
current = dummy_head
while(current.next):
if current.next.val == val:
current.next = current.next.next
else:
current = current.next
return dummy_head.next
707.设计链表
代码随想录代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文
https://programmercarl.com/0707.%E8%AE%BE%E8%AE%A1%E9%93%BE%E8%A1%A8.html
class Node:
def __init__(self, data):
self.data = data
self.next = None
class MyLinkedList:
def __init__(self):
self.head = None
def get(self, index: int) -> int:
curr = self.head
i = 0
while curr is not None and i < index:
curr = curr.next
i += 1
if curr is None:
return -1
return curr.data
def addAtHead(self, val: int) -> None:
new_node = Node(val)
new_node.next = self.head
self.head = new_node
def addAtTail(self, val: int) -> None:
new_node = Node(val)
if self.head is None:
self.head = new_node
return
curr = self.head
while curr.next is not None:
curr = curr.next
curr.next = new_node
def addAtIndex(self, index: int, val: int) -> None:
if index == 0:
new_node = Node(val)
new_node.next = self.head
self.head = new_node
return
curr = self.head
new_node = Node(val)
i = 0
while curr is not None and i < index - 1:
curr = curr.next
i += 1
if curr is None:
return
new_node.next = curr.next
curr.next = new_node
def deleteAtIndex(self, index: int) -> None:
if self.head is None:
return
curr = self.head
if index == 0:
self.head = self.head.next
return
i = 0
while curr is not None and i < index - 1:
curr = curr.next
i += 1
if curr is None or curr.next is None:
return
curr.next = curr.next.next
206.反转链表
代码随想录代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文
https://programmercarl.com/0206.%E7%BF%BB%E8%BD%AC%E9%93%BE%E8%A1%A8.html
class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
current = head
prev = None
while current:
temp = current.next
current.next = prev
prev = current
current = temp
return prev