合併兩個排序的鍊錶

2021-10-04 17:23:11 字數 608 閱讀 8158

題目描述:

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

解題思路:

兩種解題思路,一種就是很普遍的遞迴法,第二種就是迴圈。我們能不能遞迴最好不用遞迴。

迴圈:若鍊錶1的頭結點小於鍊錶2的頭結點,則鍊錶1的頭結點是合併後的頭結點。遍歷鍊錶1、鍊錶2,若鍊錶1或鍊錶2先遍歷完,則將鍊錶1或鍊錶2未遍歷完的部分直接拼接到合併鍊錶後。

class solution 

else

listnode* tail = head;

while(phead1 && phead2)

else

}if(phead1)

tail->next = phead1;

if(phead2)

tail->next = phead2;

return head;

}};

遞迴:

class solution 

else

return head;

}};

合併兩個排序鍊錶

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