21.2つの秩序チェーンテーブルを統合する(Python)

1333 ワード

もっと素晴らしい内容は、「力ボタンの簡単な問題」に注目してください.
タイトル
難易度:★☆☆☆タイプ:チェーンテーブル
2つの順序付きチェーンテーブルを新しい順序付きチェーンテーブルに結合して返します.新しいチェーンテーブルは、指定された2つのチェーンテーブルのすべてのノードを接合することによって構成されます.

入力:1->2->4、1->3->4出力:1->1->2->3->4->4
に答える
2つの秩序チェーンテーブルを融合させ、まず一時的なノードpreを定義します.head,その後融合結果を接続する.次に、2つのチェーンテーブルを巡回して、現在のノードl 1とl 2を取得し、結果としてチェーンテーブルの後に2つのノードのうち小さいノードを接続し、そのノードを1つ後ろに移動して再比較し、そのうちの1つのチェーンテーブルが巡回が終了するまで、別のチェーンテーブルの残りの部分を現在の結果に掛け、一時的なノードpre_に戻るhead後に掛けた結果チェーンテーブルでいいです.
class Solution:
    def mergeTwoLists(self, l1, l2):
        #       
        if not l1:
            return l2
        if not l2:
            return l1

        pre_head = ListNode(0)          #         ,      
        cur = pre_head                  #       

        while l1 and l2:                #               
            if l1.val > l2.val:         #          
                cur.next = l2           #                 
                l2 = l2.next            #          
            else:
                cur.next = l1
                l1 = l1.next

            cur = cur.next              #       

        if l1:
            cur.next = l1               #               
        if l2:
            cur.next = l2
        return pre_head.next            #         

質問やアドバイスがあれば、コメントエリアへようこそ~