这道题还比较简单,没有太多知识点。
1.题目
原题
删除链表中等于给定值 val 的所有节点。
例子
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
2.解析
老方法定义一个头部节点,然后指向head,这样相当于新链表可以记录head的前一个位置节点。然后根据情况更新新链表就好了。
3.python代码
def removeElements(self, head, val):
if head is None:
return head
p = ListNode(1)
p.next = head
new = p
cur = head
while cur:#其实p就是记录的前一个元素
if cur.val == val:
p.next = cur.next
else:
p = cur#下面改变cur值跟p无关
cur = cur.next
return new.next
网友评论