LinkedLists в Java; заставляя последний узел в списке указывать на первый узел, а не содержать нуль - PullRequest
1 голос
/ 19 декабря 2011

Я пытаюсь выяснить, как написать метод, который изменил бы последний узел в связанном списке и изменил бы его с null на первый узел при передаче первого указателя из связанного списка.

Я попробовал это, которое превратилось в ошибку:

public void blah()

{

Node p = first;

while (p != null)

{

p = p.link;

}

p.x = p.first;
}

Ответы [ 2 ]

2 голосов
/ 19 декабря 2011

Попробуйте это:

public void blah()  {
    Node p = first;
    while (p.link != null) {
        p = p.link;
    }
    p.link = first;
}

Имейте в виду, что это создаст круговой список, это то, что вы намереваетесь, верно? Кроме того, я предполагаю, что first является атрибутом класса, в котором находится blah().

1 голос
/ 19 декабря 2011

Это сделает работу за вас.

public void blah(Node list){
   Node firstNode = list;
   while (list.link != null){
      list = list.link;
   }
   list.link = firstNode;
}

«Первая» ссылка, которую вы использовали в коде, предполагает, что это переменная-член.Если вы хотите более подробно прочитать о списках с одиночной связью в Java, перейдите по этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...