剑指 Offer 52. 两个链表的第一个公共节点


剑指 Offer 52. 两个链表的第一个公共节点

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode first = headA;
        ListNode second= headB;
        while(first!=second){
            first=first!=null?first.next:headB;
            second=second!=null?second.next:headA;
        }
        return first;
    }

两个链表长度分别为 L1+C、L2+C, C 为公共部分的长度,按照楼主的做法: 第一个人走了 L1+C 步后,回到第二个人起点走 L2 步;第 2 个人 走了 L2+C 步后,回到第一个人起点走 L1 步。 当两个人走的步数都为 L1+L2+C 时就两个家伙就相爱了.


文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
 上一篇
剑指 Offer 58 - I. 翻转单词顺序 剑指 Offer 58 - I. 翻转单词顺序
剑指 Offer 58 - I. 翻转单词顺序双指针 public String reverseWords(String s) { s = s.trim(); // 删除首尾空格 i
2021-02-25 future
下一篇 
1143. 最长公共子序列 1143. 最长公共子序列
1143. 最长公共子序列一个字符串的   子序列   是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,”ace” 是 “abcde” 的子序列,但 “aec”
2021-02-24 future
  目录