2015-11-08 50 views
-4

我已經被警告在迭代通過LinkedList實現與節點時要小心,因爲您可能正在更改原始列表。例如,如果我傳入一個節點頭,並且不斷調用head.next,它是否會改變原始LinkedList的內容?如果我設置Node currNode = head,然後不斷調用currNode.next,那麼我保證原始內容不會更改?如果不能保證,何時會調用currNode.next不起作用?如何無損地遍歷數據結構 - 例如帶有節點的LinkedList?

回答

0

據我瞭解目前你沒有問題,但你只是好奇。

public class Node{ 
    int data; 
    Node next; 
} 

public void print(){ 
    Node curr = this.head; 
    while(curr != null){ 
     System.out.println(curr.data); 
     curr = curr.next; 
    } 
} 

如果你有一個上面的類模型,並且你有一個名爲head的變量。 如果你想迭代你只需要將頭部分配給一個新的變量curr並迭代使用它。這樣頭仍然參考根值。