题解 | #链表中环的入口结点#

链表中环的入口结点

http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4

/*
这道题的主要思想是借助三个节点 其中一个需要用Integer.MAX_VALUE实例化(tempNode),而另外两个p q作为迭代要用的中间节点(p-当前   q-下一节点)
每遍历一个节点让临时引用指向当前节点的下一节点,再让当前节点的next域指向用Integer.MAX_VALUE实例化的节点,
直到判断出q.next的数据域为Integer.MAX_VALUE,则循环头节点即为q节点
*/
/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {

    public ListNode EntryNodeOfLoop(ListNode pHead) {
        ListNode node = null;
        if(pHead == null){
            return null;
        }
        ListNode tempNode = new ListNode(Integer.MAX_VALUE);
        while(true){
            ListNode p = pHead;
            ListNode q = pHead.next;
            pHead = q;
            p.next = tempNode;
            if(q == null || q.next == null){
                return node;
            }else if(q.next.val == Integer.MAX_VALUE){
                node = new ListNode(q.val);
                return node;
            }
        }
        
    }
}
全部评论

相关推荐

09-12 11:55
已编辑
湖南工商大学 Java
那一天的Java_J...:这种一堆问题的,别去
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务