说有一个单链表: 1→2→3→4->空
单链表的定义:
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
如果我想从头到尾逐个打印节点值,我需要迭代地使用head = head.next,直到head == null。在这种情况下,我们永远不会在打印后返回到head(value = 1)节点。 我的问题是如何在遍历单链表时保持头部?
答案 0 :(得分:8)
简单答案:创建对头部的引用,并遍历它。这样你永远不会失去对头部的引用。
示例:
ListNode iter = head;
while(iter.next != null){
//DO Stuff
iter = iter.next;
}
现在请注意,head变量永远不会改变。它已准备好像以前一样使用。