1. 程式人生 > >【LeetCode 簡單題】7-用Python合併兩個有序連結串列

【LeetCode 簡單題】7-用Python合併兩個有序連結串列

宣告:

今天是第7道題,將兩個有序連結串列合併為一個新的有序連結串列並返回,新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。以下所有程式碼經過樓主驗證都能在LeetCode上執行成功,程式碼也是借鑑別人的,在文末會附上參考的部落格連結,如果侵犯了博主的相關權益,請聯絡我刪除

(手動比心ღ( ´・ᴗ・` ))

正文

題目:將兩個有序連結串列合併為一個新的有序連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。

示例:

輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4

解法1。利用迭代的思路。首先判斷輸入是否非空,若其中1個為空則返回另一個。再比較連結串列的元素大小,返回較小的那個,然後不斷迭代,呼叫自身,程式碼如下。

# V 1.0,能提交
class Solution:
    def mergeTwoLists(self, l1, l2):
        if l1 is None:
            return l2
        elif l2 is None:
            return l1
    
        listMerge = None
        if l1.val < l2.val:
            listMerge = l1
            listMerge.next = self.mergeTwoLists(l1.next,l2)
        else:
            listMerge = l2
            listMerge.next = self.mergeTwoLists(l2.next,l1)
        return listMerge

解法2。用while迴圈也可以做。 

結尾