mycode 用了反转链表,所以不符合题意

参考:

思路:

1 先让长的链表先走,然后相同长度下看是否相遇

class Solution(object):
def getIntersectionNode(self, headA, headB):
"""
:type head1, head1: ListNode
:rtype: ListNode
"""
if not headA or not headB:
return None
def cal(head):
count = 0
while head:
count += 1
head = head.next
return count
countA = cal(headA)
countB = cal(headB)
plus = countA - countB
if plus > 0:
while plus:
headA = headA.next
plus -= 1
left = countB
else:
plus = abs(plus)
while plus:
headB = headB.next
plus -= 1
left = countA
while left: #这里无论是headA还是headB都可以啦,因为两个人步伐已经一致啦
if headA == headB:
return headA
headA = headA.next
headB = headB.next
left -= 1
return None

2  让短的链表走到头后,再从长链表的头走起,这样当长链表走完后,短链表刚好在长链表上走了长度的差值的步数,所以长链表再从短链表头开始走的时候,相当于两个人起跑线相同啦

class Solution(object):
    def getIntersectionNode(self, headA, headB):         if not headA or not headB:
            return None
   
        p,q = headA , headB            while p != q: # 当p不等于q时执行下面程序
            p = headB if p is None else p1.next # 如果p不是none,就取下一个值,是NONE就让p = headB
            q = headA if q is None else q.next # 如果q不是none,就取下一个值,是NONE就让q = headA
            
        return p1 # p ,q相等有两种情况,一种是相交了,输出相交点,一种是不相交,输出了NONE

最新文章

  1. ASP模拟POST请求异步提交数据的方法
  2. lattice 与 modelsim 仿真 笔记
  3. Front End Developer Questions 前端开发人员问题(一)
  4. EntityFramework SQLite
  5. math方法
  6. 二叉查找树的Java实现
  7. Knockout 新版应用开发教程之"text"绑定
  8. IOS 学习笔记 2015-03-20 O之 nil,Nil,NULL,NSNull
  9. BIND9详解之日志篇
  10. C语言的本质(24)——C标准库之输入与输出(下)
  11. 数据结构之Heap (Java)
  12. uses crt;
  13. 使用WebGL 自定义 3D 摄像头监控模型
  14. (6.1)linux操作系统基础
  15. artTemplate 简洁语法版
  16. WinForm 捕获系统关机、重启、注销事件
  17. QTcpSocket-Qt使用Tcp通讯实现服务端和客户端
  18. bat执行java程序 good
  19. 【Java】集合遍历--List和Map的多种遍历方式
  20. 详解 SWT 中的 Browser.setUrl(String url, String postData, String[] headers) 的用法

热门文章

  1. Java Springboot 根据图片链接生成图片下载链接 及 多个图片打包zip下载链接
  2. Debian/Ubuntu下安装Apache的Mod_Rewrite模块的步骤分享
  3. 小白如何入门 Python 爬虫?
  4. 基于gulp的前端自动化方案
  5. /cat/cpuinfo信息查看
  6. jmeter性能测试抛除工具用命令测试的方法
  7. switch语句能否作用在byte,long,string上
  8. Vue 创建多页面应用模式
  9. MAKEDEV - 建立设备
  10. centos7系统时间修复