[LeetCode]21-2つの秩序チェーンテーブルをマージ
1152 ワード
21.2つの順序付きチェーンテーブルを結合し、2つの順序付きチェーンテーブルを新しい順序付きチェーンテーブルに結合して返します.新しいチェーンテーブルは、指定された2つのチェーンテーブルのすべてのノードを接合することによって構成されます.入力:1->2->4、1->3->4出力:1->1->2->3->4->4
解法1:チェーンテーブルを再帰的にマージする
この方法の実行時間は28%のコミットレコードを超えたにすぎない.
解法2:簡略化された再帰アルゴリズム
依然として再帰的な思想であり、82.57%を超える提出である.
解法1:チェーンテーブルを再帰的にマージする
この方法の実行時間は28%のコミットレコードを超えたにすぎない.
class Solution:
def mergeTwoLists(self, l1, l2):
def merge(l1, l2):
if not l1:
return l2
if not l2:
return l1
if l1.val > l2.val:
pres = l2
pres.next = merge(l1, l2.next)
return pres
else:
pres = l1
pres.next = merge(l1.next, l2)
return pres
res = merge(l1, l2)
return res
解法2:簡略化された再帰アルゴリズム
依然として再帰的な思想であり、82.57%を超える提出である.
class Solution:
def mergeTwoLists(self, l1, l2):
if not l1 or not l2:
return l1 or l2
if l1.val < l2.val:
l1.next = self.mergeTwoLists(l1.next, l2)
return l1
else:
l2.next = self.mergeTwoLists(l1, l2.next)
return l2