📌  相关文章
📜  从列表中删除所有小于 K 的节点(1)

📅  最后修改于: 2023-12-03 15:36:16.503000             🧑  作者: Mango

从列表中删除所有小于 K 的节点

介绍

在程序开发中,常常需要操作链表数据结构。其中一个常见需求是从链表中删除所有小于给定值 K 的节点。本文将介绍如何在 Python 中实现这一操作。

实现思路

首先需要遍历链表,然后对每个节点进行删除操作,最后返回更新后的链表。

在具体实现中,我们可以采用两个指针来遍历链表:prevcurrprev 指向当前节点的前一个节点,curr 指向当前节点。

如果当前节点小于 K,则需要删除该节点。具体方法是将 prevnext 指向 currnext,然后再将 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 的节点。在实际应用中,需要根据具体场景进行使用。