劍指offer全集詳解python版——兩個鏈表的第一個公共結點

題目描述:
輸入兩個鏈表,找出它們的第一個公共結點。

思路:

沒有環的話,經典的快慢指針就夠了。

代碼

# -*- 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
        p1 = pHead1
        p2 = pHead2
        while pHead1 != None and pHead2 != None:
            pHead1 = pHead1.next
            pHead2 = pHead2.next
        i = 0
        if pHead1 != None:
            while pHead1:
                pHead1 = pHead1.next
                i += 1
            for i in range(i):
                p1 = p1.next
            while p1 != p2:
                p1,p2 = p1.next,p2.next
            return p1
        else:
            while pHead2:
                pHead2 = pHead2.next
                i += 1
            for i in range(i):
                p2 = p2.next
            while p1 != p2:
                p1,p2 = p1.next,p2.next
            return p1    
發佈了71 篇原創文章 · 獲贊 18 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章