剣指offer 25:2つのソートされたチェーンテーブルをマージ
3423 ワード
面接問題25:2つのソートされたチェーンテーブルをマージ
タイトル記述は2つの単調に増加するチェーンテーブルを入力し、2つのチェーンテーブルの合成後のチェーンテーブルを出力します.もちろん、合成後のチェーンテーブルは単調で減少しない規則を満たす必要があります.
考え方:ダブルポインタは、それぞれ2つのチェーンテーブルのヘッダノードを指し、チェーンテーブル2のヘッダノードの値がチェーンテーブル1のヘッダノードの値より小さい場合、チェーンテーブル2のヘッダノードの値はチェーンテーブルのヘッダノードを結合し、このノードと前にチェーンテーブルを結合したときに得られたチェーンテーブルのテールノードを接続する.ポインタを後ろに移動し、前の手順に進みます.
タイトル記述は2つの単調に増加するチェーンテーブルを入力し、2つのチェーンテーブルの合成後のチェーンテーブルを出力します.もちろん、合成後のチェーンテーブルは単調で減少しない規則を満たす必要があります.
考え方:ダブルポインタは、それぞれ2つのチェーンテーブルのヘッダノードを指し、チェーンテーブル2のヘッダノードの値がチェーンテーブル1のヘッダノードの値より小さい場合、チェーンテーブル2のヘッダノードの値はチェーンテーブルのヘッダノードを結合し、このノードと前にチェーンテーブルを結合したときに得られたチェーンテーブルのテールノードを接続する.ポインタを後ろに移動し、前の手順に進みます.
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1 == null){
return list2;
}
if(list2 == null){
return list1;
}
ListNode pMergedHead = null;
if(list1.val < list2.val){
pMergedHead = list1;
pMergedHead.next = Merge(list1.next,list2);
}else{
pMergedHead = list2;
pMergedHead.next = Merge(list1,list2.next);
}
return pMergedHead;
}
}