Python3_Leetcode #21 合併兩個有序連結串列
阿新 • • 發佈:2021-07-14
前提:將兩個升序連結串列合併為一個新的升序連結串列並返回
思路:
比較兩個連結串列的初始結點,初始結點較小的連結串列繼續比較 該連結串列剩下部分和另一個連結串列。該題使用遞迴完成
程式碼:
#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