題目描述:
輸入兩個鏈表,找出它們的第一個公共結點。
思路:
沒有環的話,經典的快慢指針就夠了。
代碼
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindFirstCommonNode(self, pHead1, pHead2):
# write code here
p1 = pHead1
p2 = pHead2
while pHead1 != None and pHead2 != None:
pHead1 = pHead1.next
pHead2 = pHead2.next
i = 0
if pHead1 != None:
while pHead1:
pHead1 = pHead1.next
i += 1
for i in range(i):
p1 = p1.next
while p1 != p2:
p1,p2 = p1.next,p2.next
return p1
else:
while pHead2:
pHead2 = pHead2.next
i += 1
for i in range(i):
p2 = p2.next
while p1 != p2:
p1,p2 = p1.next,p2.next
return p1