题目描述

编写一个程序,找到两个单链表相交的起始节点。

注意:

如果两个链表没有交点,返回 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.相交链表相关推荐

  1. 力扣LeetBook<链表>学习笔记

    文章目录 一.概述 二.单链表 1.设计单链表 三.双指针技巧 1. 环形链表 2.环形链表Ⅱ 3.相交链表 4.删除链表的倒数第N个节点 5.小结 四.经典问题 1.反转链表 2.移除链表元素 3. ...

  2. LeetCode-链表-160. 相交链表

    160. 相交链表 思路一:使用set用到了额外的内存,没有达到题目要求 /*** Definition for singly-linked list.* struct ListNode {* int ...

  3. 双指针算法之快慢指针(一):力扣【判断链表是否有环】leetcode-141、142

    一.简介:什么是快慢指针? 快慢指针,顾名思义,无非就是设置一个快指针,一个慢指针,初始化的时候,快指针和慢指针都指向链表的头结点,前进的时候一个在前一个在后,结合起来可以十分巧妙的解决链表中的一些问 ...

  4. 双指针算法之快慢指针(二):力扣【寻找链表的第N个点】leetcode-876、19

    双指针算法之快慢指针(二):力扣[寻找链表的第N个点]leetcode-876.19 看完本文,可以去解决力扣的 867 题和 19 题 以往参考:双指针算法之快慢指针(一):力扣[判断链表是否有环] ...

  5. LeetCode Algorithm 160. 相交链表

    160. 相交链表 Ideas 这题之前左神算法课的时候也讲过,那是一个带环的相交链表,不过原理都是一样的. 双指针,a指针先沿着headA开始走,走到头之后开始沿着headB继续走,b指针先沿着he ...

  6. 160. 相交链表 golang

    160. 相交链表 计算两个链表长度,让长的先走到两个链表一样长,然后找交点 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:inters ...

  7. 【LeetCode】【HOT】160. 相交链表

    [LeetCode][HOT]160. 相交链表 文章目录 [LeetCode][HOT]160. 相交链表 package hot;class ListNode{int val;ListNode n ...

  8. 力扣61. 旋转链表(转vector三次翻转、成环解环)

    力扣61. 旋转链表(转vector三次翻转.成环解环) https://leetcode-cn.com/problems/rotate-list/ 给定一个链表,旋转链表,将链表每个节点向右移动 k ...

  9. 【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II

    作者:一个喜欢猫咪的的程序员 专栏:<Leetcode> 喜欢的话:世间因为少年的挺身而出,而更加瑰丽.                                  --<人民 ...

最新文章

  1. 《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写
  2. mint-ui 写一个下拉滑动选择,mt-popup和mt-picker结合使用
  3. python+selenium,实现带有验证码的自动化登录功能
  4. Zabbix4.2-Proxy超时的问题(first network error, wait for 15 seconds)
  5. Windows下安装和配置NodeJS
  6. VS2008启动调试,出现“ 已经找到网站 正在等待回应”
  7. Python3入门机器学习经典算法与应用 第3章 Numpy中的arg运算
  8. 小程序源码:首席省钱赚钱专家微信小程序源码下载,淘宝客 外卖侠 外卖cps 首席多多客 八合一小程序源码
  9. 语音信号预处理3——计算原始chirp信号与滤波后chirp信号的相关性
  10. 关于lora和lorawan所涉及的名词解释
  11. java企业项目进度绩效考核管理系统 SSH
  12. Google Android Market电子市场/应用商店
  13. 查看主板型号 两种方法
  14. 微信修改基本配置信息
  15. Zemax基础知识7--衍射知识(一)
  16. 如何在知网下载期刊封面、扉页、目录?
  17. 航天信息a3连接不上服务器,航天信息睿财A3使用说明
  18. Flutter For App——一个简单的豆瓣APP
  19. Truncated Power Method for Sparse Eigenvalue Problems
  20. 情人节最全送礼指南、实用又好看的礼物推荐

热门文章

  1. python123测验4程序题_Python面试题245道(从基础到高级)123~141——网络编程,Web—Flask...
  2. 台式计算机的拆解与安装实验报告,计算机组成实验的实验报告
  3. java java 检查型异常_如何整合Java中的有效性检查和异常抛出?
  4. python3打包成exe运行 无法定位程度输入点_Pyinstaller递归错误解决方案
  5. 时序数据库php,时序数据库InfluxDB
  6. C++11 function用法 可调用对象模板类
  7. 201521123028 《Java程序设计》第5周学习总结
  8. [BZOJ2879] [Noi2012] 美食节 (费用流 动态加边)
  9. 获取存储过程返回值及代码中获取返回值(转)
  10. 如何实现上一条、下一条的功能