力扣160.相交链表
题目描述
编写一个程序,找到两个单链表相交的起始节点。
注意:
如果两个链表没有交点,返回 null.
在返回结果后,两个链表仍须保持原有的结构。
可假定整个链表结构中没有循环。
程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。
解题思路
循环思想+双指针
一个指针从headA遍历,直到为NULL时改从headB遍历
另一个指针同理
如果二者有公共地址,则两个指针一定是在进入公共路径时相遇
相遇时走过的长度都是
A非公共路段+B非公共路段+AB公共路段
代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {if(!headA||!headB)return nanl;struct ListNode *re1 = headA;struct ListNode *re2 = headB;while(re1 != re2){re1 = re1?re1->next:headB;re2 = re2?re2->next:headA;}return re1;
}
链接
力扣160.相交链表相关推荐
- 力扣LeetBook<链表>学习笔记
文章目录 一.概述 二.单链表 1.设计单链表 三.双指针技巧 1. 环形链表 2.环形链表Ⅱ 3.相交链表 4.删除链表的倒数第N个节点 5.小结 四.经典问题 1.反转链表 2.移除链表元素 3. ...
- LeetCode-链表-160. 相交链表
160. 相交链表 思路一:使用set用到了额外的内存,没有达到题目要求 /*** Definition for singly-linked list.* struct ListNode {* int ...
- 双指针算法之快慢指针(一):力扣【判断链表是否有环】leetcode-141、142
一.简介:什么是快慢指针? 快慢指针,顾名思义,无非就是设置一个快指针,一个慢指针,初始化的时候,快指针和慢指针都指向链表的头结点,前进的时候一个在前一个在后,结合起来可以十分巧妙的解决链表中的一些问 ...
- 双指针算法之快慢指针(二):力扣【寻找链表的第N个点】leetcode-876、19
双指针算法之快慢指针(二):力扣[寻找链表的第N个点]leetcode-876.19 看完本文,可以去解决力扣的 867 题和 19 题 以往参考:双指针算法之快慢指针(一):力扣[判断链表是否有环] ...
- LeetCode Algorithm 160. 相交链表
160. 相交链表 Ideas 这题之前左神算法课的时候也讲过,那是一个带环的相交链表,不过原理都是一样的. 双指针,a指针先沿着headA开始走,走到头之后开始沿着headB继续走,b指针先沿着he ...
- 160. 相交链表 golang
160. 相交链表 计算两个链表长度,让长的先走到两个链表一样长,然后找交点 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:inters ...
- 【LeetCode】【HOT】160. 相交链表
[LeetCode][HOT]160. 相交链表 文章目录 [LeetCode][HOT]160. 相交链表 package hot;class ListNode{int val;ListNode n ...
- 力扣61. 旋转链表(转vector三次翻转、成环解环)
力扣61. 旋转链表(转vector三次翻转.成环解环) https://leetcode-cn.com/problems/rotate-list/ 给定一个链表,旋转链表,将链表每个节点向右移动 k ...
- 【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II
作者:一个喜欢猫咪的的程序员 专栏:<Leetcode> 喜欢的话:世间因为少年的挺身而出,而更加瑰丽. --<人民 ...
最新文章
- 《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写
- mint-ui 写一个下拉滑动选择,mt-popup和mt-picker结合使用
- python+selenium,实现带有验证码的自动化登录功能
- Zabbix4.2-Proxy超时的问题(first network error, wait for 15 seconds)
- Windows下安装和配置NodeJS
- VS2008启动调试,出现“ 已经找到网站 正在等待回应”
- Python3入门机器学习经典算法与应用 第3章 Numpy中的arg运算
- 小程序源码:首席省钱赚钱专家微信小程序源码下载,淘宝客 外卖侠 外卖cps 首席多多客 八合一小程序源码
- 语音信号预处理3——计算原始chirp信号与滤波后chirp信号的相关性
- 关于lora和lorawan所涉及的名词解释
- java企业项目进度绩效考核管理系统 SSH
- Google Android Market电子市场/应用商店
- 查看主板型号 两种方法
- 微信修改基本配置信息
- Zemax基础知识7--衍射知识(一)
- 如何在知网下载期刊封面、扉页、目录?
- 航天信息a3连接不上服务器,航天信息睿财A3使用说明
- Flutter For App——一个简单的豆瓣APP
- Truncated Power Method for Sparse Eigenvalue Problems
- 情人节最全送礼指南、实用又好看的礼物推荐
热门文章
- python123测验4程序题_Python面试题245道(从基础到高级)123~141——网络编程,Web—Flask...
- 台式计算机的拆解与安装实验报告,计算机组成实验的实验报告
- java java 检查型异常_如何整合Java中的有效性检查和异常抛出?
- python3打包成exe运行 无法定位程度输入点_Pyinstaller递归错误解决方案
- 时序数据库php,时序数据库InfluxDB
- C++11 function用法 可调用对象模板类
- 201521123028 《Java程序设计》第5周学习总结
- [BZOJ2879] [Noi2012] 美食节 (费用流 动态加边)
- 获取存储过程返回值及代码中获取返回值(转)
- 如何实现上一条、下一条的功能