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

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

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

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

题目描述

输入两个链表,找出它们的第一个公共节点。

解答

遍历,虽然觉得样例可能有点问题。。。

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode *h1=NULL, *h2=NULL;
        while (headA!=NULL){
            if (h1==NULL)
            {
                h1=new ListNode;
                h1->val=headA->val;
                h1->next=NULL;
            }
            else
            {
                ListNode *p=new ListNode;
                p->val=headA->val;
                p->next=h1;
                h1=p;
            }
            headA=headA->next;
        }

        while (headB!=NULL){
            if (h2==NULL)
            {
                h2=new ListNode;
                h2->val=headB->val;
                h2->next=NULL;
            }
            else
            {
                ListNode *p=new ListNode;
                p->val=headB->val;
                p->next=h2;
                h2=p;
            }
            headB=headB->next;
        }

        ListNode *h3=NULL;
       
        while(h1!=NULL && h2!=NULL && h1->val==h2->val)
        {
            if (h3==NULL)
            {
                h3=new ListNode;
                h3->val=h1->val;
                h3->next=NULL;
            }
            else
            {
                ListNode *p=new ListNode;
                p->val=h1->val;
                p->next=h3;
                h3=p;                
            }
            h1=h1->next;
            h2=h2->next;
        }
        return h3;
    }
};

BUG

8 [4,1,8,4,5] [5,0,1,8,4,5] 2 3

输出

Intersected at '1'

预期结果

Intersected at '8'

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

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

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