当前位置: 首页 > ds >正文

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

在这里插入图片描述
在这里插入图片描述
解答:

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

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

http://www.xdnf.cn/news/8464.html

相关文章:

  • Redis 缓存使用的热点Key问题
  • 基于微信小程序的智能问卷调查系统设计与实现(源码+定制+解答)基于微信生态的问卷管理与数据分析系统设计
  • 基于DQN的学习资源难度匹配智能体
  • 强势突围!TROP2 ADC芦康沙妥珠单抗进击晚期TNBC一线治疗
  • Java分布式事务实现原理与方案详解
  • 灵魂云,浏览器 github+gitee 兼容
  • 英语写作中“假设”suppose, assume, presume 的用法
  • 缓存穿透 击穿 雪崩
  • 【Pandas】pandas DataFrame sum
  • 【Java高阶面经:消息队列篇】23、Kafka延迟消息:实现高并发场景下的延迟任务处理
  • 《全志T3》_嵌入式产品Ubuntu操作系统启动详解一
  • Android.mk解析
  • Web前端开发: 什么是JavaScript?
  • 垒球百科全书·棒球1号位
  • 无法访问org.springframework.boot.SpringApplication
  • Elastic:什么是 DevOps?
  • Chrome中http被强转成https问题
  • Git 分支管理:merge、rebase、cherry-pick 的用法与规范
  • Python应用“面向对象”人力系统
  • 深入解析自然语言处理中的语言转换方法
  • Docker Volumes 还原指南
  • java Sm2SignWithSM3转php
  • 网络学习-TCP协议(七)
  • 跨域解决方案之JSONP
  • YOLOV11改进策略【最新注意力机制】CVPR2025局部区域注意力机制LRSA-增强局部区域特征之间的交互
  • 使用DDR4控制器实现多通道数据读写(十三)
  • DAO模式
  • DEBUG设置为False 时,django默认的后台样式等静态文件丢失的问题
  • 新能源汽车滑行阻力参数计算全解析:从理论推导到MATLAB工具实现
  • macOS 安装 PostgreSQL