2014-10-11 3 views
0

Так это кодРеализация добавить метод элемента для связанного списка в Java

void add(String data) { 
    Link newLink = new Link(data); 
    newLink.next = firstLink; 
    firstLink = newLink; 
} 

Если у нас есть только один элемент firstLink.next укажет сам т.е. firsLink (из-за newLink.next = firstLink;) так он будет не равен нулю. и если у нас есть метод печати, как это:

void print() { 
    Link currentLink = firstLink; 
    while (currentLink != null) { 
     System.out.println(currentLink.data); 
     currentLink = currentLink.next; 
    } 
} 

это должно быть бесконечный цикл, но на самом деле его не так, когда я начинаю его в упадке. Мой вопрос: почему?

ответ

1

Если у вас есть только один элемент, то firstLink был пустым, когда вы добавили этот первый элемент.

Это означает, что ваш метод add() выглядит следующим образом:

void add(String data) { 
    Link newLink = new Link(data); // create new link 
    newLink.next = firstLink;   // set newLink.next = null 
    firstLink = newLink;    // make newLink the first link 
} 
1

Если firstLink инициализируется null в начале программы, то первый вызов add(data) установит firstLink на новую связь ВОЗ next является null.

Смежные вопросы