刷演算法 合併兩個排序的單鏈表

2021-09-11 12:12:47 字數 492 閱讀 1856

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

首先考慮兩個鍊錶的頭部哪個成為新鍊錶的頭,顯然是值小的那個是新的頭;

然後是合併時,兩個鍊錶上分別有乙個指標cur1和cur2,比較兩個指標指向的節點值大小,較小的鏈結到新鍊錶的尾部,且指標往後移動乙個,較大的則不動; 可能有某個鍊錶未遍歷完,直接將其全新增到新鍊錶尾部即可。

/*function listnode(x)*/

function merge(h1, h2)

else

newe = newh;

while (cur1 !== null && cur2 !== null) else

newe = newe.next;

}while(cur1 !== null)

while(cur2 !== null)

return newh;

}複製**

刷演算法 合併兩個排序的單鏈表

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。首先考慮兩個鍊錶的頭部哪個成為新鍊錶的頭,顯然是值小的那個是新的頭 然後是合併時,兩個鍊錶上分別有乙個指標cur1和cur2,比較兩個指標指向的節點值大小,較小的鏈結到新鍊錶的尾部,且指標往後移動乙個,較大的...

合併兩個排序的單鏈表

題目 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是依照遞增排序的。分析 合併單鏈表,須要找到頭結點,對照兩個煉表頭結點後,確定頭結點,再確定頭結點下乙個結點,迴圈遞迴的如前面一樣操作確定每乙個結點位置,同一時候考慮邊界條件,假設兩個鍊錶為空。則肯定無需合併了,就是空鍊錶,假設乙個鍊...

合併兩個有序單鏈表

include using namespace std typedef struct nodenode,linklist void creatlist linklist l void insert int n,node p void show linklist l cout num head2 ne...