美文网首页
两个链表的第一个公共结点

两个链表的第一个公共结点

作者: GoDeep | 来源:发表于2018-04-04 20:33 被阅读0次

    题目描述
    输入两个链表,找出它们的第一个公共结点。

    # -*- 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
            l1 = l2 = 0
            r1, r2 = pHead1, pHead2
            while r1: 
                r1 = r1.next
                l1 += 1
            while r2: 
                r2 = r2.next
                l2 += 1
            
            r1, r2 = pHead1, pHead2
            if l1>l2:
                for _ in range(l1-l2): r1=r1.next
            else:
                for _ in range(l2-l1): r2=r2.next
            
            while r1!=r2:
                r1, r2 = r1.next, r2.next
            return r1
    

    相关文章

      网友评论

          本文标题:两个链表的第一个公共结点

          本文链接:https://www.haomeiwen.com/subject/fdylhftx.html