链表

两个链表的长度如果相等的话,从头节点开始走,两个指针相等的时候就找到了第一个公共节点。

class Solution {
public:
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
        ListNode* L1 = pHead1;
        ListNode* L2 = pHead2;
        int l1 = 0,l2 = 0;
        while(L1 !=NULL || L2!= NULL)
        {
            if(L1!=NULL){L1 = L1->next;}
            else{ l2++; }
            if(L2 != NULL){L2 = L2->next;}
            else{ l1++; }
        }
        L1 = pHead1;
        L2 = pHead2;
        while(l1!=0)
        {
            L1 = L1->next;
            l1--;
        }
        while(l2!=0)
        {
            L2 = L2->next;
            l2--;
        }
        while(L1!=L2)
        {
            L1 = L1->next;
            L2 = L2->next;
        }
        return L1;
    }
};
全部评论

相关推荐

06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
05-19 15:21
已编辑
华南农业大学 Java
白火同学:你才沟通了200,说实话,北上广深杭这里面你连一座城市的互联网公司都没投满呢,更别说还有各种准一线二线城市了。等你沟通突破了三位数,还没结果再考虑转行的事吧。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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