题解 | #链表中环的入口结点#
链表中环的入口结点
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;
}
}
}
}
CVTE公司福利 672人发布
查看14道真题和解析