方法要记住,和判断是不是交叉链表不一样

方法是将两条链表的路径合并,两个指针分别从a和b走不同路线会在交点处相遇

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
if (headA==null||headB==null) return null;
/*
本来想用快慢指针做,把其中一个链表收尾相接,然后再用判断循环链表路口的方法
但是觉得这个easy的题目应该不会这么复杂,看了答案却是有更好的方法
求两个链表相交点的方法是:
虽然两个链表可能不一样长,但是如果将两个链表长度叠加,然后两个指针从不同的路线走
由于速度相同,路程相同,相遇的地方就是相交点
*/
ListNode a = headA,b = headB;
while (a!=b)
{
//a走完A再走B,这是一条录路线,另一条路线是b走完B再走A,到相交点时会相遇
//这里要判断a是不是null而不是a.next,因为a和b需要走到null,如果不走的话,没有交点的两个链表会死循环
a = (a==null)?headB:a.next;
b = (b==null)?headA:b.next;
}
return a;
}

最新文章

  1. 01windows窗体程序学习
  2. 群集中的MS DTC分布式事务协调器
  3. bing的简单英文字典工具
  4. paper 34 :常见函数的举例(更新ing)2
  5. Getting and installing the PEAR package manager
  6. IOS NSNotificationCenter 通知的使用
  7. [C入门 - 游戏编程系列] 环境篇
  8. cf472C Design Tutorial: Make It Nondeterministic
  9. Python图片处理库之PIL
  10. git常用命令说明教程
  11. go语言数据库操作,xorm框架
  12. 好程序员分享居中一个float元素
  13. [TJOI2018]碱基序列
  14. jq简单仿上传文件
  15. java发送http连接
  16. Windows 7/Vista下安装Oracle Developer Suit遇到的几个问题
  17. 阿里巴巴Java开发规约插件全球首发!(转)
  18. 分析Linux上的程序依赖
  19. HDU 3970 Harmonious Set 容斥欧拉函数
  20. ES中Module的使用

热门文章

  1. 定时器:Django-crontab
  2. Mongo小结
  3. windows安装程序无法将windows配置为在此计算机上运行
  4. 【自用】Notice
  5. 从零开始学生信-orthofinder的安装和使用-基因家族分析
  6. Spring源码分析之AOP从解析到调用
  7. 11g RAC 集群数据库不能跟随集群启动
  8. iOS10 App适配权限 Push Notifications 字体Frame 遇到的坑!!!!
  9. vue 表单基本 表单修饰符
  10. 安装nodejs 版本控制器