1. 程式人生 > 其它 >Python3_Leetcode #21 合併兩個有序連結串列

Python3_Leetcode #21 合併兩個有序連結串列

前提:將兩個升序連結串列合併為一個新的升序連結串列並返回

思路:

比較兩個連結串列的初始結點,初始結點較小的連結串列繼續比較 該連結串列剩下部分和另一個連結串列。該題使用遞迴完成

程式碼:

#Definitionforsingly-linkedlist. #classListNode: #def__init__(self,val=0,next=None): #self.val=val #self.next=next classSolution: defmergeTwoLists(self,l1:ListNode,l2:ListNode)->ListNode: ifnotl1:returnl2  #如果l1為空,則返回另外那個連結串列,因為沒得比較了 ifnotl2:returnl1  ##如果l2為空,則返回另外那個連結串列,因為沒得比較了
ifl1.val<=l2.val:  #比較頭結點,小的那個連結串列,就比較其剩下的和另外那個連結串列 l1.next=self.mergeTwoLists(l1.next,l2)  #一直遞迴 returnl1 else: l2.next=self.mergeTwoLists(l1,l2.next)  #一直遞迴
returnl2