📅  最后修改于: 2023-12-03 15:36:16.503000             🧑  作者: Mango
在程序开发中,常常需要操作链表数据结构。其中一个常见需求是从链表中删除所有小于给定值 K 的节点。本文将介绍如何在 Python 中实现这一操作。
首先需要遍历链表,然后对每个节点进行删除操作,最后返回更新后的链表。
在具体实现中,我们可以采用两个指针来遍历链表:prev
和 curr
。prev
指向当前节点的前一个节点,curr
指向当前节点。
如果当前节点小于 K,则需要删除该节点。具体方法是将 prev
的 next
指向 curr
的 next
,然后再将 curr
指向 curr.next
。
如果当前节点不小于 K,则不需要删除该节点,将 prev
指向当前节点,并将 curr
指向下一个节点。
在遍历完整个链表后,返回更新后的链表。
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def removeNodes(head: ListNode, k: int) -> ListNode:
# 处理头节点为小于 k 的情况
while head and head.val < k:
head = head.next
# 处理所有节点都小于 k 的情况
if not head:
return None
prev, curr = head, head.next
while curr:
if curr.val < k:
prev.next = curr.next
else:
prev = curr
curr = curr.next
return head
以上代码实现了从链表中删除所有小于 K 的节点。在实际应用中,需要根据具体场景进行使用。