zoukankan      html  css  js  c++  java
  • leetcode[160]Intersection of Two Linked Lists

    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.

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
            if(headA==NULL||headB==NULL)return NULL;
            int a=1;
            int b=1;
            ListNode *pa=headA;
            ListNode *pb=headB;
            while(pa->next)
            {
                a++;
                pa=pa->next;
            }
            while(pb->next)
            {
                b++;
                pb=pb->next;
            }
            if(pa!=pb)return NULL;
            pa=headA;
            pb=headB;
            if(a>b)
            {
                int i=0;
                while(i<a-b)
                {
                    pa=pa->next;
                    i++;
                }
            }
            else
            {
                int i=0;
                while(i<b-a)
                {
                    pb=pb->next;
                    i++;
                }
            }
            while(pa!=pb)
            {
               pa=pa->next;
               pb=pb->next;
            }
            return pa;
        }
    };
  • 相关阅读:
    1月5日学习记录||1月8日学习
    1.1学习记录|1.2日学习记录|1.3日
    RNA-seq数据为什么要去噪
    12.16日学习记录
    12.15学习记录
    transformer和bert简要学习
    关系抽取学习
    12.14周六学习记录
    12.5日学习记录
    12.4周三学习记录
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4280713.html
Copyright © 2011-2022 走看看