welcome to my blog
程序员代码面试指南第二版 22.两个单链表相交的一系列问题
相同的题:剑指offer面试题52:两个链表的第一个公共节点, 题解链接; 分解问题:1)是否有环 2)相交的第一个公共节点
归纳总结; 找链表的中间节点和判断链表有没有环都用到了快慢指针, 写法很像: 初始化, 关键条件
返回链表的中间节点
ListNode left=head, right=head.next;
//找到中间节点
while(right!=null && right.next!=null){
left = left.next;
right = right.next.next;
}
判断链表是否有环
ListNode left=head, right=head.next;
while(left != right){
//execute
if(right==null || right.next==null)
return null;//no loop
//update
left = left.next;
right = right.next.next;
}