鍊錶問題 合併兩個排序鍊錶

2021-08-21 01:35:58 字數 538 閱讀 8097

題目:輸入兩個遞增排序的鍊錶,合併這兩個排序鍊錶,使得合併之後的鍊錶仍然使遞增排序的。

分析:即是歸併排序中的歸併操作,有兩種具體的實現:1、使用遞迴的方法,2、迭代版本,逐個合併鍊錶。實現如下:

/*

struct listnode

};*/

/*遞迴版本*/

listnode*merge(listnode*phead1, listnode*phead2)

else

return pmergehead ;

}/*迭代版本*/

listnode*merge(listnode*phead1, listnode*phead2)

else

listnode*pnode3 = pmergehead;

while (pnode1&&pnode2)

else

}while (pnode1)

while (pnode2)

return pmergehead;

}

合併兩個排序鍊錶

struct listnode class solution else while pstart1 null pstart2 null plast next pstart1 plast pend1 pend1 pend1 next pstart1 pend1 else plast next psta...

合併兩個排序鍊錶

描述 將兩個排序鍊錶合併為乙個新的排序鍊錶樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 將兩個鍊錶當中的對應元素的值進行比較,重新確定新鍊錶當中元素的位置。若第乙個鍊錶當前位置的值小於第二個鍊錶當前值,則不需要改變位置,第乙個鍊錶的指標...

合併兩個排序鍊錶

問題描述 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...