删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5
可以用递归也可以用循环
循环代码:
class Solution:
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
node = ListNode(None)
node.next = head
p = node
while p.next:
if p.next.val == val:
p.next = p.next.next
else:
p = p.next
return node.next
递归代码:
class Solution:
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
if not head:return head
head.next = self.removeElements(head.next,val)
return head.next if head.val == val else head