合併兩個排序的鍊錶

2021-08-14 08:52:50 字數 546 閱讀 3066

題目:輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使得新煉表中的結點仍然按照遞增排序的

分析:假設鍊錶1:1->3->5->7鍊錶2:2->4->6->8合併之後的鍊錶應該是1->2->3->4->5->6->7->8

我們首先比較鍊錶1和鍊錶2的頭結點的值的大小,值小的結點1作為新鍊錶的頭結點,此時鍊錶1:3->5->7,鍊錶2:2->4->6->8。再比較此時兩個鍊錶的頭結點,值小的結點2與之前合併好的鍊錶的結點鏈結起來。

測試用例:

功能測試(輸入的鍊錶有多個結點,結點的值互不相同或者存在值相等的多個結點)

特殊輸入測試(兩個鍊錶的乙個或者兩個頭結點為null指標,兩個鍊錶中只有乙個結點)

**如下:

struct listnode

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

else if(phead1->m_nvalue > phead2->m_nvalue)

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。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...