首页 > 其他 > 详细

剑指OFFER 两个链表的第一个公共结点

时间:2020-01-18 20:58:27      阅读:94      评论:0      收藏:0      [点我收藏+]

剑指OFFER 两个链表的第一个公共结点

同步出发,如果首次发现已经被访问过的结点,那么这个结点就是第一个公共结点

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    map<ListNode*,int> m;
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
        if(pHead1 == NULL || pHead2 == NULL)return NULL;
        
        
        ListNode* node1 = pHead1;
        ListNode* node2 = pHead2;
        
        while(node1 != NULL || node2 != NULL)
        {

            if(node1 != NULL)
            {
                if(m[node1] > 0)return node1;
                m[node1]++;
                node1 = node1->next;
            }
            
            if(node2 != NULL)
            {
                if(m[node2] > 0)return node2;
                m[node2]++;
                node2 = node2->next;
            }
            
        }
        return NULL;
    }
};

剑指OFFER 两个链表的第一个公共结点

原文:https://www.cnblogs.com/virgildevil/p/12210096.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!