Как удалить узлы в начале связанного списка? - PullRequest
0 голосов
/ 05 мая 2018

У меня есть этот список: [ 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 я все равно увижу первый узел. Если вам нужна функция, я так и сказал, но мне просто нужно знать, как удалить первый узел. Извините, если это основной вопрос, но я новичок в программировании.

1 Ответ

0 голосов
/ 05 мая 2018

Вы не можете изменить связанный список, чтобы удалить ведущие узлы, если только не перестанете думать о своей функции как о «изменении списка» и не начнете думать о ней как о «возвращении нового списка, который отличается от оригинала». Затем он может вернуть ссылку на узел, который изначально не был первым узлом.

...