[リンクリスト](Link List)の2つのソートリストをマージ
6371 ワード
再帰構造への接続
ここでは、ソートされたリストが重要です.
連結ソートの最後の組合せでは、最初の値から1つずつ比較することで、一度に解決できます.これは、連結ソートの最後の組合せと同じ方法で、最初から比較し、車に戻って簡単に解くことができます.
from typing import List
class ListNode(object):
def __init__(self, val=0, next=None):
self.val = val
self.next = None
def merge_two_lists(l1: ListNode, l2: ListNode) -> ListNode:
if (not l1) or (l2 and l1.val > l2.val):
l1, l2 = l2, l1
if l1:
l1.next = merge_two_lists(l1.next, l2)
return l1
if __name__ == "__main__":
list1 = ListNode(1)
list2 = ListNode(2)
list3 = ListNode(4)
head1 = list1
list1.next = list2
list2.next = list3
list4 = ListNode(1)
list5 = ListNode(3)
list6 = ListNode(4)
head2 = list4
list4.next = list5
list5.next = list6
head = merge_two_lists(head1, head2)
while head:
print(head.val, end="")
if head.next:
print("->", end="")
head = head.next
参考資料
Reference
この問題について([リンクリスト](Link List)の2つのソートリストをマージ), 我々は、より多くの情報をここで見つけました https://velog.io/@t1won/링크드-리스트-두-정렬-리스트의-병합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol