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

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

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

题意:
        输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。

方法:
双指针

思路:
        

注意点:如果两链表没有公共部分,则会执行 a+b==b+a ,最后 p1==p2==null 而退出循环。

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

时间复杂度:
空间复杂度:


全部评论

相关推荐

想申请延毕了,找工作找到崩溃,越找就越想摆烂,还有25届的和我一样感受吗?
码农索隆:没事哒,好兄弟,慢慢来,调整心态,车到山前必有路,感到迷茫的时候,多抬头看看
点赞 评论 收藏
分享
刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务