首页 > 其他分享 >力扣(leetcode) 160. 相交链表(走相同的路)

力扣(leetcode) 160. 相交链表(走相同的路)

时间:2022-10-27 20:04:38浏览次数:138  
标签:力扣 题目 指向 相交 链表 160 节点 指针


题目在这:​​https://leetcode-cn.com/problems/intersection-of-two-linked-lists/​

题目分析:

要仔细看题目,题目中要求的是:‘请你找出并返回两个单链表相交的起始节点’而不是节点所指向的值
题目是想要找到相交节点的指针~ 其次节点的val是可以重复出现的,仅仅比较val是会出错的。

思路分析:

有一个方法,就是A指针指向第一个链表,B指针指向第二个链表,两个指针同时向后移动。
若A指针已经指向第一个链表最后一个了,则下一步就去第二个链表的开头。
同理B指针已经指向第二个链表的最后一个了,则下一步就取第一个链表的开头。

链表问题 还是看图来得快
看图!!!!!

力扣(leetcode) 160. 相交链表(走相同的路)_两个指针

有了上面的算法,代码写起来也很容易了.

A, B = headA,headB
while A!= B: # 若不相交 则最后会都跑到null了
if A:
A = A.next
else:
A = headB
if B:
B = B.next
else:
B = headA
return

可以理解成两个人速度一致, 走过的路程一致。那么肯定会同一个时间点到达终点。


标签:力扣,题目,指向,相交,链表,160,节点,指针
From: https://blog.51cto.com/u_15849381/5801744

相关文章