2023-02-01 第三天

2023-01-31  本文已影响0人  远方的飞鱼

链表的操作要考虑遍历的方法

移除指针的方法

1.直接使用原来的链表来进行删除操作。
2.设置一个虚拟头结点在进行删除操作。

虚拟头节点的做法

Definition for singly-linked list.

class ListNode:

def init(self, val=0, next=None):

self.val = val

self.next = next

class Solution:
def removeElements(self, head: ListNode, val: int) -> ListNode:
dummy_head = ListNode(next=head) #添加一个虚拟节点
cur = dummy_head
while(cur.next!=None):
if(cur.next.val == val):
cur.next = cur.next.next #删除cur.next节点
else:
cur = cur.next
return dummy_head.next

current 是用来一步步遍历链表节点
cur.next = cur.next.next #删除cur.next节点 (就对应删除了 dumpy_head nex 中 target 元素的节点)

cur = cur.next 是推进节点向前走 一直走到最后 (这里肯定就不能作为返回值)

dumpy_head next 是指向头节点的

上一篇 下一篇

猜你喜欢

热点阅读