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

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

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

用map做

/*
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 || !pHead2){
            return NULL;
        }


        ListNode* res;

        unordered_map<ListNode*, int> m;

        while(pHead1){
            m[pHead1] ++;
            pHead1 = pHead1->next;
        }

        while(pHead2){
            m[pHead2] ++;

            if(m[pHead2] == 2){
                return pHead2;
            }

            pHead2 = pHead2->next;
        }

        return res;
    }
};
算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

09-29 00:03
门头沟学院 Java
点赞 评论 收藏
分享
皮格吉:不,有的厂子面试无手撕,可以试试。都是一边学一边面。哪有真正准备好的时候,别放弃
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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