当前位置:网站首页>剑指 Offer 52. 两个链表的第一个公共节点

剑指 Offer 52. 两个链表的第一个公共节点

2022-07-16 14:18:00 anieoo

原题链接:剑指 Offer 52. 两个链表的第一个公共节点

 

solution:
        第一条路径分为a + c,第二条路径分为b + c.当A走到终点null时,跳到B起点,当B走到终点null的时候,跳到A的起点,最后相遇的时候一定都走了a + b + c的结点数 

/**
 * 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 *ha = headA;
        ListNode *hb = headB;

        while(ha != hb) {
            ha = ha == NULL ? headB : ha->next;
            hb = hb == NULL ? headA : hb->next;
        }
        return ha;
    }
};
原网站

版权声明
本文为[anieoo]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_42174306/article/details/125817909