两个链表的第一个公共节点(python)

一,问题描述:
输入两个链表,找出它们的第一个公共结点。

二,代码及分析:
代码:在这里插入图片描述
在这里插入图片描述
实现过程分析:

我们分别用指针up和down来指向两个链表

在这里插入图片描述
如果他们都不是空,就让他们遍历整个链表,直到有一方为空,跳出循环在这里插入图片描述
如果是up先到None,就说明pHead1短于pHead2.那他们差多少呢?

我们让down继续往下跳,直到跳到None。并用k来记录他跳了几步,这样,我们就得到了两个链表的长度差k。

接着,我们把up和down放回原点,并让down往前先走k步在这里插入图片描述
然后让他两同时往前跳,直到他两相遇,然后返回随便哪一个的值,即为所求在这里插入图片描述
如果是down先到None,说明pHead2比较短,则up往前先走k步,然后两人一起跳。过程略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值