# 160. 相交鏈表
# https://leetcode-cn.com/problems/intersection-of-two-linked-lists/
"""
編寫一個程序,找到兩個單鏈表相交的起始節點。
"""
class Solution:
def getIntersectionNode(self, headA, headB):
"""
兩個節點走完自己的鏈,然後接着走別人的鏈,一定會碰頭的
1. p1走自己的鏈, p2走自己的鏈
2. 如果p1走完了,則去走p2的鏈,同理p2
"""
if not headA or not headB:
return None
p1 = headA
p2 = headB
flag1 = False
flag2 = False
while not (flag1 and flag2):
while p1 and p2:
if p1 == p2:
return p1
p1 = p1.next
p2 = p2.next
if not flag1 and p1 is None:
p1 = headB
flag1 = True
if not flag2 and p2 is None:
p2 = headA
flag2 = True
return None
leetcode 160. 相交鏈表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.