LeetCode-链表-160. 相交链表
160. 相交链表
/*** 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) {unordered_set<ListNode*> myset;while(headA!=nullptr){myset.insert(headA);headA = headA->next;}while(headB!=nullptr){if(myset.find(headB)!=myset.end()){return headB;}else {headB = headB->next;}}return nullptr;}
};
/**定义两个指针, 第一轮让两个到达末尾的节点指向另一个链表的头部, 最后如果相遇则为交点(在第一轮移动中恰好抹除了长度差)
两个指针等于移动了相同的距离, 有交点就返回, 无交点就是各走了两条指针的长度
**/
// 在这里第一轮体现在pA和pB第一次到达尾部会移向另一链表的表头, 而第二轮体现在如果pA或pB相交就返回交点, 不相交最后就是null==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) {ListNode *A = headA, *B = headB;/**定义两个指针, 第一轮让两个到达末尾的节点指向另一个链表的头部, 最后如果相遇则为交点(在第一轮移动中恰好抹除了长度差)两个指针等于移动了相同的距离, 有交点就返回, 无交点就是各走了两条指针的长度**/// 在这里第一轮体现在pA和pB第一次到达尾部会移向另一链表的表头, 而第二轮体现在如果pA或pB相交就返回交点, 不相交最后就是null==nullwhile(A!=B){A = A!=nullptr ? A->next : headB;B = B!=nullptr ? B->next : headA;}return A;}
};
LeetCode-链表-160. 相交链表相关推荐
- LeetCode Algorithm 160. 相交链表
160. 相交链表 Ideas 这题之前左神算法课的时候也讲过,那是一个带环的相交链表,不过原理都是一样的. 双指针,a指针先沿着headA开始走,走到头之后开始沿着headB继续走,b指针先沿着he ...
- 【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II
作者:一个喜欢猫咪的的程序员 专栏:<Leetcode> 喜欢的话:世间因为少年的挺身而出,而更加瑰丽. --<人民 ...
- 【LeetCode】【HOT】160. 相交链表
[LeetCode][HOT]160. 相交链表 文章目录 [LeetCode][HOT]160. 相交链表 package hot;class ListNode{int val;ListNode n ...
- 160. 相交链表 golang
160. 相交链表 计算两个链表长度,让长的先走到两个链表一样长,然后找交点 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:inters ...
- Leetcode 160.相交链表
难度:简单 频率:140 题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表不存在相交节点,返回 null . 解题方法:双指针遍历 解题 ...
- LeetCode实战:相交链表
背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Write a pro ...
- leetcode题解之相交链表
''' 编写一个程序,找到两个单链表相交的起始节点. 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构. 可假定整个链表结构中没有循环. 程序尽量满足 O(n) ...
- 每日一道 LeetCode (36):相交链表
每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...
- 文巾解题 160. 相交链表
1 题目描述 2 解题思路 2.1 哈希表 遍历listA,把每个节点(以及后继节点)放入一个list中.遍历完A之后遍历B,如果B的某个节点(以及后继节点)在这个list中,那么我们就找到了相交的部 ...
最新文章
- 免费Java高级工程师学习资源,使用指南
- tf.unstack\tf.unstack
- oracle安装实训心得,oracle数据库实训心得.docx
- ServiceStack.Redis 请求次数6000次异常
- 在IIS中寄存已有WCF服务
- java生成excel文件
- 获利上亿!一程序员主犯非法挖矿被抓
- 把VS Code打造成Java开发IDE,也挺爽!
- 团队文化之舒适区和挑战区
- vb6源码 ymodem_VB爱好者乐园(VBGood)
- 2019年上海理工大学《高等代数》试题和答案——解题人(蔡宇)
- 微信分身服务器验证失败咋办,微信好友验证发送失败原因分析及解决方法汇总...
- 99定时器设计c语言,51单片机写的曝光定时器C语言程序
- lisp 焊接符号标注_焊接符号标注及表示方法-详解aws焊接符号、钢结构焊接符号含义大全...
- uni-app 异形轮播
- 软件测试学习小记 note2
- dir命令只显示文件名
- 正则表达式[^\\.]
- 张小龙:微信十年的产品思考
- [codeforces 1343B] Balanced Array 奇+奇=偶,奇+偶=奇,偶+偶=偶
热门文章
- wsl遇到问题The repository ‘http://ppa.launchpad.net/ubuntu-desktop/ubuntu-make/ubuntu focal Release‘解决方法
- PAT甲级1067 Sort with Swap(0, i):[C++题解]此题不是很懂!!
- SpingBoot中使用MyBatis和pagehelper实现数据的增删改查和分页
- SpringBoot用容器IoC管理Bean
- c语言调用shell命令一 popen使用以及获取命令返回值
- 人体肺活量测试软件,人体肺活量怎么测试
- java磁盘读写b 树_原来你是这样的B+树
- Qt基于文本协议的网络应用开发
- 继承关系中的拷贝构造函数和赋值操作重载函数分析
- Qt中的QTimer