輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。
示例1:
輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
限制:
0 <= 鍊錶長度 <= 1000
首先這是兩個排序鍊錶,要合成為乙個有序鍊錶,我們大體思路就是先定義出新的鍊錶的頭(newhead),然後再將這兩個排序鍊錶的每乙個節點的值大小比較,按照順序一一串起來就好了。
/**
* definition for singly-linked list.
* public class listnode
* }*/class
solution
else
}//當跳出 while迴圈,我們要考慮跳出迴圈的條件:
//1. l1 l2都剛好遍歷完,每乙個節點都已經放到了新的有序鍊錶中
//2. l1或者l2兩個長度不等,其中有乙個遍歷到頭了
if(l1 != null)
if(l2 != null)
return newhead.next;
//返回newhead.next,因為newhead是我們定義
//的乙個標誌頭節點的(val==-1),新的有序鍊錶跟在它後面,也就是說新的
//頭節點的位址在newhead.next域中。
}}
劍指offer 25 合併兩個排序的鍊錶
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。1 非遞迴的方法 如果可以改變鍊錶,直接從頭結點開始依次移動比較兩個鍊錶當前值的大小,把較小的值作為當前結點的下乙個結點。注意 剛剛開始的時候不知道頭結點到底是1的還是2的,所以新建乙個額外的新節點作為輔助 ...
劍指offer25 合併兩個排序的鍊錶
題目 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然使遞增排序的。例如 輸入下圖的鍊錶1和鍊錶2,則合併之後的公升序鍊錶如圖鍊錶3所示。鍊錶定義如下 思路 從兩個鍊錶的頭結點開始,比較兩個鍊錶的頭結點的值大小,值小的結點就是合併後鍊錶的頭結點,繼續合併鍊錶中剩餘的節點,在兩個鍊錶中剩下...
劍指offer 25 合併兩個排序的鍊錶
輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。輸入 1 3 5 2 4 5 輸出 1 2 3 4 5 5 二路歸併 新建乙個頭節點pmergedhead,並設定乙個指標pcurrenthead指向pmergedhead比較phead1和phead2指標指向的值 phead...