題目描述
輸入兩個鏈表,找出它們的第一個公共結點。(注意因爲傳入數據是鏈表,所以錯誤測試數據的提示是用其他方式顯示的,保證傳入數據是正確的)
# -*- 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
while pHead1 == None:
return None
while pHead2 == None:
return None
pTemp1 = pHead1
pTemp2 = pHead2
stack1 = []
stack2 = []
# 把兩個鏈表都壓入棧
while pTemp1:
stack1.append(pTemp1)
pTemp1 = pTemp1.next
while pTemp2:
stack2.append(pTemp2)
pTemp2 = pTemp2.next
p = None
# 由於相同節點後的所有節點都相同,所以倒着彈棧,一直到不相等,就爲第一個相同的節點
while stack1 and stack2 and stack1[-1] == stack2[-1]:
p = stack1.pop()
stack2.pop()
return p