zoukankan      html  css  js  c++  java
  • 【leetcode】Intersection of Two Linked Lists(easy)

    Write a program to find the node at which the intersection of two singly linked lists begins.

    For example, the following two linked lists:

    A:          a1 → a2
                       ↘
                         c1 → c2 → c3
                       ↗            
    B:     b1 → b2 → b3
    

    begin to intersect at node c1.

    Notes:

      • If the two linked lists have no intersection at all, return null.
      • The linked lists must retain their original structure after the function returns.
      • You may assume there are no cycles anywhere in the entire linked structure.
      • Your code should preferably run in O(n) time and use only O(1) memory.

    思路:简单题 遍历长度 走差值 再同步走   答案里给了个转圈圈的思路 感觉没有自己的好 太乱了

    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
            if(headA == NULL || headB == NULL)
            {
                return NULL;
            }
            int lenA = 1;
            int lenB = 1;
            ListNode * pa = headA;
            ListNode * pb = headB;
    
            while(pa->next != NULL)
            {
                pa = pa->next;
                lenA++;
            }
            while(pb->next != NULL)
            {
                pb = pb->next;
                lenB++;
            }
    
            if(pa != pb) return NULL;
    
            pa = headA;
            pb = headB;
            while(lenA > lenB)
            {
                pa = pa->next; lenA--;
            }
            while(lenB > lenA)
            {
                pb = pb->next; lenB--;
            }
            while(pa != pb)
            {
                pa = pa->next;
                pb = pb->next;
            }
    
        }
  • 相关阅读:
    JAVA学习日报 8.2
    软件工程书籍《大道至简》读后感
    【CSAPP】第三章 程序的机器级表示
    【算法】KMP
    【经验总结】CodeBlocks使用mingw64
    【C++】指针和函数
    【C++】字符串处理
    【C++】自定义数据类型
    【C++】STL容器
    【C++】STL算法
  • 原文地址:https://www.cnblogs.com/dplearning/p/4268754.html
Copyright © 2011-2022 走看看