保持Java中单链表的头部

时间:2014-03-06 22:10:22

标签: java singly-linked-list

说有一个单链表: 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)节点。 我的问题是如何在遍历单链表时保持头部?

1 个答案:

答案 0 :(得分:8)

简单答案:创建对头部的引用,并遍历它。这样你永远不会失去对头部的引用。

示例:

ListNode iter = head;
while(iter.next != null){
    //DO Stuff
    iter = iter.next;
}

现在请注意,head变量永远不会改变。它已准备好像以前一样使用。