我是靠谱客的博主 娇气小懒虫,最近开发中收集的这篇文章主要介绍有两个链表,怎么求交点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

struct ListNode{
int val;
ListNode* next;
ListNode(int x):val(x),next(nullptr);
};

class Solution
{
public:
ListNode* findNode(ListNode* node1,ListNode* node2)
{
    if(node1==nullptr || node2==nullptr)
        return nullptr;
    int len1=0,len2=0;
    ListNode* tmp1=node1,tmp2=node2;
    while(tmp1)
    {
        len1++;
        tmp1=tmp1->next;
    }
    while(tmp2)
    {
        len2++;
        tmp2=tmp2->next;
    }

    tmp1=node1;
    tmp2=node2;
    if(len1<len2)
    {
        for(int i=0;i<len2-len1;++i)
            tmp2=tmp2->next;
    }
    else if(len1>len2)
    {
        for(int i=0;i<len1-len2;++i)
            tmp1=tmp1->next;
    }
    while(tmp1 && tmp2)
    {
        if(tmp1==tmp2)
            return tmp1;
        else
        {
            tmp1=tmp1->next;
            tmp2=tmp2->next;
        }
    }
    return nullptr;
}
};

 

最后

以上就是娇气小懒虫为你收集整理的有两个链表,怎么求交点的全部内容,希望文章能够帮你解决有两个链表,怎么求交点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部