兩個鏈表公共結點

題目描述
輸入兩個鏈表,找出它們的第一個公共結點。(注意因爲傳入數據是鏈表,所以錯誤測試數據的提示是用其他方式顯示的,保證傳入數據是正確的)

# -*- 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章