相交链表

题目
编写一个程序,找到两个单链表相交的起始节点。

思路

用set,在 headB 中找与 headA 相同的节点。

代码

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        set<ListNode*> res;
        while(headA){
            res.insert(headA);
            headA=headA->next;
        }
        while(headB){
            if(res.find(headB) !=res.end()){
                return headB;
            }
            headB=headB->next;
        }
        return NULL;
    }
};