leetcode hot100刷题日记——11.相交链表


解答:

cpp 复制代码
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        //方法一:先遍历一条链表,存节点;再遍历另一条链表,找对应的节点有没有存过
        // unordered_set<ListNode*>vis;
        // ListNode *temp=headA;
        // while(temp!=nullptr){
        //     vis.insert(temp);
        //     temp=temp->next;
        // }
        // temp=headB;
        // while(temp!=nullptr){
        //     if(vis.count(temp)!=0){
        //         return temp;
        //     }
        //     temp=temp->next;
        // }
        // return nullptr;

        //方法二:双指针
        if(headA==nullptr || headB==nullptr){
            return nullptr;
        }
        ListNode *pA=headA,*pB=headB;
        while(pA!=pB){
            pA=pA==nullptr?headB:pA->next;
            pB=pB==nullptr?headA:pB->next;
        }
        return pB;
    }
};

方法一:

时间复杂度O(M+N)

空间复杂度O(N)

方法二:

时间复杂度O(M+N)

空间复杂度O(1)

方法二思想详见官方题解link

直白理解:两个链表左端对齐,后面的分别用对方的给补上,如果两个一样长,那就不用找到后面补上的部分;如果不一样长,分别经过对方的补上之后相同的部分就能拉齐了

相关推荐
lengxuenong18 分钟前
树状数组 · 信息学学习手册1-求和3个模板
c++·学习·算法·青少年编程
ComputerInBook28 分钟前
泛函分析概观
人工智能·算法·机器学习·泛函分析
Nuanyt1 小时前
LeetCode Hot100 刷题笔记 · 普通数组专题
java·笔记·算法·leetcode
q27551300421 小时前
AS8132 DP转HDMI 4K60(420)被动式 国产性价比AS方案
linux·算法·硬件架构·dash
安全指北针1 小时前
密态计算:数据 “可用不可见” 的底层技术解析
人工智能·算法
Jmyd01231 小时前
3D 扫描仪选型技术拆解:精度、点云与软件链路
人工智能·算法·3d·三维数字化
xxxiugou1231 小时前
链表算法题精讲:从两数相加到K组翻转
数据结构·c++·算法·链表
梦帮科技2 小时前
量子纠缠网络与量子隐形传态攻防:量子中继器信道串扰、纠缠态保真度降解与量子路由劫持
开发语言·网络·人工智能·算法·自动化·php
老王IT2 小时前
C语言语法基础语法介绍
c语言·开发语言·算法
m0_719640872 小时前
2026年适合课题研究的具身智能实验室建设方案有哪些可参考?
经验分享·算法