题目描述
输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
# -*- 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