如何以非破坏性的方式遍历数据结构 - 例如带有节点的LinkedList?

时间:2015-11-08 09:06:22

标签: java linked-list nodes

我已经被警告过在使用Nodes迭代LinkedList工具时要小心,因为您可能正在更改原始列表。例如,如果我传入一个Node头,并连续调用head.next,它会改变原始LinkedList的内容吗?如果我设置Node currNode = head,然后连续调用currNode.next,我保证原来没有改变吗?如果不能保证,何时调用currNode.next不起作用?

1 个答案:

答案 0 :(得分: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的新变量并使用它进行迭代。这样头仍然可以引用根值。