輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。
首先考慮兩個鍊錶的頭部哪個成為新鍊錶的頭,顯然是值小的那個是新的頭;
然後是合併時,兩個鍊錶上分別有乙個指標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...