题目描述
输入两个链表,找出它们的第一个公共结点。
思路:
先统计两个链表长度,长的链表先走长的部分,然后一起走,判断是否相等
# -*- 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
len1 = self.getLength(pHead1)
len2 = self.getLength(pHead2)
if len1 > len2:
for i in range(len1-len2):
pHead1 = pHead1.next
else:
for i in range(len2-len1):
pHead2 = pHead2.next
while pHead1:
if pHead1 == pHead2:
return pHead1
pHead1 = pHead1.next
pHead2 = pHead2.next
def getLength(self, p):
length = 0
if not p:
return 0
while p:
length += 1
p = p.next
return length