2014-10-11 30 views
0

所以這是代碼元法在java中添加到鏈表實現

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

如果我們只有一個元素firstLink.next將指向自身firsLink即(因爲newLink.next的=首聯;)這樣它不會爲空。 如果我們有這樣的打印方法:

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

這應該是一個無限循環,但實際上這不是真的,當我在Eclipse中啓動它。 我的問題是爲什麼?

回答

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到新的鏈路誰的nextnull