Python中链表的删除指定值的节点操作
链表删除指定值的节点操作可以通过遍历链表查找到要删除的节点,然后将该节点的前一个节点的next指针指向该节点的下一个节点即可实现删除操作。
下面是Python中链表删除指定值的节点操作的代码演示:
class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solution: def deleteNode(self, head: ListNode, val: int) -> ListNode: dummy = ListNode(0, head) prev, curr = dummy, head while curr: if curr.val == val: prev.next = curr.next break prev, curr = curr, curr.next return dummy.next
这里假设链表头结点是head,要删除的值是val。我们可以先创建一个dummy节点作为头部,因为链表的头可能需要被删除。用prev和curr指向dummy和head。然后从头开始遍历整个链表。如果当前节点的值等于要删除的值,就通过prev和curr连接下一个节点来删除当前节点。最后返回dummy.next即可得到删除后的链表。
代码演示:
# 创建链表1 -> 2 -> 3 -> 4 -> 5 head = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5))))) # 删除链表中值为3的节点 s = Solution() res = s.deleteNode(head, 3) # 输出删除节点后的链表 while res: print(res.val, end=' -> ') res = res.next print('None')
输出结果:
1 -> 2 -> 4 -> 5 -> None
相关文章