# leetcode 相交链表

点击量:12

这是leetcode的解题报告。ARTS很想加入,但是因为自己懒,本身也做了这些事情,因此就一直都在拖,希望这周能够搞定。

origin

from leetcode

road

相交链表,两个指针分别遍历两个链表即可,具体可以画图来表示,两个链表,一个长度为 a+c,另一个长度为 b+c,两个指针势必会在 a+b+c 的位置相遇。

solution

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode *w1, *w2;
        w1 = headA;
        w2 = headB;
        if (!w1 || !w2) {
            return NULL;
        }
        while (w1 != w2) {
            if (!w1)
                w1 = headB;
            else
                w1 = w1->next;
            if (!w2)
                w2 = headA;
            else
                w2 = w2->next;
        }
        return w1;
    }
};

发表评论

电子邮件地址不会被公开。 必填项已用*标注