题目描述
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
算法思想
其实这道题并不是很难,比较有难度的地方其实是头指针head指向的就是元素,而不是一个空的节点,这就要巧妙地重新声明一个新的空节点,然后就是遍历并删除节点就可以了
代码(注意一下声明新节点的写法)
class Solution(object):
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
p = ListNode(0)
p.next = head
while p.next:
if p.next.val == val:
if p.next == head:
head = head.next
p.next = head
else:
p.next = p.next.next
else:
p = p.next
return head