因为两个链表长度可能不相等,所以不能仅仅一个一个节点的遍历链表找到相同节点。但是a+b=b+a 可以把两个链表连接起来,这样就算是公共长度,所以长度相等。于是,当某一个链表的遍历节点为空的时候,就把他置为另一个链表的头部。这样遍历出来的结果就是公共节点
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
#
#
# @param pHead1 ListNode类
# @param pHead2 ListNode类
# @return ListNode类
#
class Solution:
def FindFirstCommonNode(self , pHead1 , pHead2 ):
# write code here
if not pHead1 or not pHead2:
return None
p1=pHead1
p2=pHead2
while p1!=p2:
if p1==None:
p1=pHead2
else:
p1=p1.next
if p2==None:
p2=pHead1
else:
p2=p2.next
return p1

京公网安备 11010502036488号