我有这个列表:[5,3,5,5,3,7,7,5,3,2]并且每次我在列表中有一个与提供给我的队列相同的序列时,我都需要删除 - 例如队列 [exit-5,3-enter] 我的函数返回 [5,3,5,7,7,2-->空],但我希望它是[5,7,7,2-->空]。 我还想提一下,当我谈论链表时,我实际上指的是节点列表-
Node<Integer> lis
(它有一个值和一个指向下一个节点的指针(。我已经完成了我提到的功能,但是如果序列出现在已经提到的类似列表的 Iv'e 的开头,我所做的不起作用,因为我不知道如何从列表的开头删除。我知道如何删除我只引用下一个节点的节点,让它没有引用,但我的函数获得了对列表的主要引用的副本
public static void removeAppear(Node<Integer> n,Queue<Integer> q){
所以如果我只写:
n=n.getNext();
例如,它实际上不会删除第一个节点,并且从 void main 方法中我仍然会看到第一个节点。如果您需要该功能,我确实说过,但我真的只需要知道如何删除第一个节点。对不起,如果这是一个基本问题,但我对编程很陌生。
你不能改变链表来删除前导节点,除非你不再将函数视为"更改列表",并开始将其视为"返回与原始列表不同的新列表"。然后,它可以返回对最初不是第一个节点的节点的引用。