程序员代码面试指南第二版 22.两个单链表相交的一系列问题

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;
}

你可能感兴趣的:(程序员代码面试指南第二版)