链表_两个链表的第一个公共结点
思路:参考答案
# -*- 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
stack1 = []
stack2 = []
while pHead1:
stack1.append(pHead1)
pHead1 = pHead1.next
while pHead2:
stack2.append(pHead2)
pHead2 = pHead2.next
node = None
while stack1 and stack2 and stack1[-1]==stack2[-1]:
node = stack1.pop()
stack2.pop()
return node
法2:一次暴力解法尝试,竟然成功了,不过不建议这么写。
# -*- 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
if not pHead1 or not pHead2:
return None
while pHead1:
tmp = pHead2
while tmp:
if pHead1 == tmp and pHead1.next == tmp.next:
return pHead1
else:
tmp = tmp.next
pHead1 = pHead1.next
return None