題目:輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使得新煉表中的結點仍然按照遞增排序的
分析:假設鍊錶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。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...