题解 | #两个链表的第一个公共结点#

两个链表的第一个公共结点

http://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46

p1和p2分别遍历链表,一次向前走一步,当走到头并且两者不相等时,重新给其赋值头结点,形成环状的遍历,直到两者相遇。

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
        if(pHead1==nullptr || pHead2==nullptr) return nullptr;
        ListNode* p1=pHead1;
        ListNode* p2=pHead2;
        while(p1!=p2){
            p1=p1->next;
            p2=p2->next;
            if(p1!=p2){
                if(p1==nullptr) p1=pHead2;
                if(p2==nullptr) p2=pHead1;
            }
        }
        return p1;
    }
};



全部评论
hui
点赞 回复 分享
发布于 2022-11-24 10:48 河南
如果确实没有公共结点,会不会死循环?
点赞 回复 分享
发布于 2022-04-13 21:19

相关推荐

昨天 18:43
门头沟学院 Java
是暑期都招满了吗
投递腾讯等公司7个岗位
点赞 评论 收藏
分享
Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
07-09 20:50
门头沟学院 Java
码农索隆:1.教育背景和荣誉证书合二为一。 2.获奖项目理一遍,你做了什么,对你求职的岗位有什么帮助,没有就删掉。 3.技能特长和教育背景交换位置。 4.技能特长写的太差,上网上找简历参考。都不用问你别的,一个redis就能把你问住,写写你具体会redis哪些方面的知识。
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务