タイトル:リストの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;
}