相交链表

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

 

 1、双指针

#include <unordered_map>

using namespace std;

struct ListNode {
    int val;
    ListNode *next;

    ListNode(int x) : val(x), next(nullptr) {}
};

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode *curA = headA;
        ListNode *curB = headB;
        while (curA != curB) {
            curA = curA ? curA = curA->next : headB;
            curB = curB ? curB = curB->next : headA;
        }
        return curA;
    }
};

 

posted on 2021-03-08 10:51  QzZq  阅读(61)  评论(0)    收藏  举报

导航