# -*- 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 pHead1==None or pHead2==None:
return None
la=self.len_list(pHead1)
lb=self.len_list(pHead2)
if la>lb:
i=0
while i<la-lb:
pHead1= pHead1.next
i+=1
if la<lb:
i=0
while i<la-lb:
pHead2= pHead2.next
i+=1
while pHead1!=pHead2:
pHead1= pHead1.next
pHead2= pHead2.next
return pHead1
def len_list(self,Head): #定义一个新的方法也是要先判断极端情况
if Head==None:
return None
count=0
while Head: #head肯定不是none,已经判断了上面,
Head=Head.next
count+=1
return count