链表怎么删除节点
链表删除节点的基本思路:
- 找到待删除节点的前一个节点 prevNode
- 将 prevNode 的 next 指针指向待删除节点的下一个节点 nextNode
- 释放待删除节点的内存空间
代码实现:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteNode(head: ListNode, val: int) -> ListNode:
# 处理头节点的情况
if head.val == val:
return head.next
# 找到待删除节点的前一个节点
prevNode = head
while prevNode.next and prevNode.next.val != val:
prevNode = prevNode.next
# 待删除节点不存在
if prevNode.next is None:
return head
# 删除节点
prevNode.next = prevNode.next.next
return head
其中,head 表示链表的头节点,val 表示要删除的节点的值。如果要删除的是头节点,直接返回 head.next 即可。否则,遍历链表找到待删除节点的前一个节点 prevNode,然后将 prevNode 的 next 指针指向待删除节点的下一个节点 nextNode,最后释放待删除节点的内存空间。
原文地址: https://www.cveoy.top/t/topic/DsS 著作权归作者所有。请勿转载和采集!