Go 实现短链接服务

IPFS FIL合法吗?在米国怎么样?

  返回  

leetcode题解

2021/7/21 15:52:51 浏览:

剑指 Offer 52. 两个链表的第一个公共节点
参考:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/solution/liang-ge-lian-biao-de-di-yi-ge-gong-gong-pzbs/

双指针方法:
如果两个链表有一个为空,则答案为空。
否则:
链表A头部为A
链表B头部为B
如果A!=B
如果A指针为空,则变成B链表头部,否则A指针后移。
如果B指针为空,则变成A链表头部,否则B指针后移。

这样如果链表不重合,则最后都会变成NULL
如果重合,则两个都会遍历自己加对方的重合前部分,总个数是一样的。

/**
 * 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) {
        if(headA==NULL||headB==NULL)return NULL;
        ListNode *nowA=headA,*nowB=headB;
        while(nowA!=nowB){
            if(nowA==NULL)nowA=headB;else nowA=nowA->next;
            if(nowB==NULL)nowB=headA;else nowB=nowB->next;
        }
        return nowA;
    }
};

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号