【面試題25】合併兩個排序的鏈表

這個題也做過,但是也忘了。

21.合併兩個有序鏈表

23.合併K個排序鏈表

在這裏插入圖片描述

Python題解

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回合併後列表
    def Merge(self, pHead1, pHead2):
        if not pHead1:
            return pHead2
        elif not pHead2:
            return pHead1
        mergedHead = None
        if pHead1.val < pHead2.val:
            mergedHead = pHead1
            mergedHead.next = self.Merge(pHead1.next, pHead2)
        else:
            mergedHead = pHead2
            mergedHead.next = self.Merge(pHead1, pHead2.next)
        return mergedHead

考點

  • 考查分析問題的能力。解決這個問題需要大量的指針操作,如果沒有透徹的分析問題形成清晰的思路,則很難寫出正確的代碼;
  • 考察能不能寫出魯棒的代碼。由於有大量的指針操作,稍有不慎就會在代碼中遺留很多與魯棒性相關的隱患。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章