安全プランを証明する:マージ2つのソートされたリスト(javaの)

タイトル:リストの2つの昇順を入力し、二つのリストをマージして、新しいノードのリストはまだソート昇順です。昇順リストがリスト2に入力した後、例えば、鎖1および3を組み合わせ。


 ノードリストの値は、リンクされたリストのノード2の値よりも小さい場合()は、リストの先頭は、複合ヘッドノードリストの接合点です。2つのリストノードリストの値は、最初のノード1の値未満である場合、そのリストの先頭は、複合ヘッド2ノードリストの接合点です。

(B)2つのノードが依然として残っているリストがソートされているので、我々は、このように二つのリストをマージし、残りの2つのノードのリストをマージし続け、前のステップは同じ手順であるが、二つのリストを必要とします小さい値の最初のノードは、ノードの組み合わせリストの後端に連結されています。

  今度は、堅牢性の問題を解決しましょう。2)第二のリストが空の場合、合成結果が最初のリストである; 3)二つのリストが空リストがある場合は最初のリストが空の場合は1)、次いで合わせた結果は、第二のリストであります結合された結果は空のリストです。

 public ListNode  Merge(ListNode pHead1,ListNode pHead2){  
        if(pHead1 == null)  
            return pHead2;  
        else if(pHead2 == null)  
            return pHead1;  
        ListNode pMergedHead = null;  
        if(pHead1.data <pHead2.data){  
            pMergedHead = pHead1;  
            pMergedHead.next = Merge(pHead1.next ,pHead2);  
        }else{  
            pMergedHead = pHead2;  
            pMergedHead.next = Merge(pHead1,pHead2.next);  
        }  
        return pMergedHead;  
    }  

公開された118元の記事 ウォン称賛35 ビュー120 000 +

おすすめ

転載: blog.csdn.net/abc7845129630/article/details/52724705