栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

#牛客网 剑指offer-两个链表的第一个公共结点

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

#牛客网 剑指offer-两个链表的第一个公共结点

一、题目

二、解法-遍历

class Solution 
{
public:
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) 
    {
        ListNode*  p1 = pHead1;
        ListNode*  p2 = pHead2;
        while(p1!=p2)
        {
            if(p1!=p2)
            {
                if(p1==nullptr)
                {
                    p1 = pHead1;
                }
                else
                {
                    p1 = p1->next;
                }
                if(p2==nullptr)
                {
                    p2 = pHead2;
                }
                else
                {
                    p2 = p2->next;
                }
            }
        }
        return p1;
    }
};

通过->next遍历两个数组直到找到两个相同或都为空。

tip:两个链表不用分别循环,每次循环同时进一位,到达末端的链表重新到最开始继续循环,直到两个链表同时到末端或找到了两个链表的公共环。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347418.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号