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

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

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

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
  public:
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
        ListNode* p1 = pHead1;
        ListNode* p2 = pHead2;
        int i = 0, j = 0;
        if (pHead1 == nullptr || pHead2 == nullptr) return nullptr;
        while (p1 != nullptr || p2 != nullptr) {
            if (p1 != nullptr) {
                p1 = p1->next;
                i++;
            }
            if (p2 != nullptr) {
                p2 = p2->next;
                j++;
            }
        }
        if (i >= j) {
            for (int k = 0; k < i - j; k++) {
                pHead1 = pHead1->next;
            }
        } else {
            for (int k = 0; k < j - i; k++) {
                pHead2 = pHead2->next;
            }
        }
        while (pHead1 != nullptr && pHead2 != nullptr) {
            if (pHead1 == pHead2)return pHead1;
            pHead1 = pHead1->next;
            pHead2 = pHead2->next;
        }
        return nullptr;
    }
};

比较两个链表的长度,然后让头指针在齐平位置同时出发即可。

全部评论

相关推荐

Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
大疆在线测评都考什么呀,会考企业概况啥的吗
又被画饼了的做题家很...:不会。刚做完,就是材料分析、态度题、算术题、逻辑题。总共60道。
投递大疆等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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