利用遞迴和非遞迴方法合併兩個有序鍊錶:
注意點:
1、**中以輸入的方式生成兩個鍊錶,在生成完畢第乙個鍊錶之後要將cin的內容清空。不然會引起第二個鍊錶無法輸入生成的問題。
#include
#include
using
namespace std;
struct node };
node*
creatlist()
while
(getchar()
!='\n');
cin.
clear()
;return head-
>next;
}node*
meragelist
(node* list1, node* list2)
else}if
(list1 ==
nullptr
) ptr-
>next = list2;
else
ptr-
>next = list1;
ptr = head-
>next;
delete head;
return ptr;
}node*
meragelistre
(node* list1, node* list2)
else
return head;
}void
show
(node* list)
cout << endl;
}int
main()
遞迴合併兩個有序鍊錶
遞迴 程式呼叫自身的程式設計技巧稱為遞迴。一般來說,遞迴需要有邊界條件 遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進 當邊界條件滿足時,遞迴返回。遞迴終止條件 遞迴的終止條件一般定義在遞迴函式內部,在遞迴呼叫前要做乙個條件判斷,根據判斷的結果選擇是繼續呼叫自身,還是return 返回終止遞迴...
合併兩個排序的鍊錶遞迴和非遞迴C 實現
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,要求合成後的鍊錶滿足單調不減規則。已知輸入的兩個鍊錶遞增有序,要使輸出的鍊錶依然遞增有序,可以依次從輸入的兩個鍊錶中挑選最小的元素插入到輸出的鍊錶尾部,便可實現輸出鍊錶遞增有序。struct listnode 遞迴實現合併兩個排序鍊錶 listnod...
合併兩個排序的鍊錶 鍊錶 遞迴
題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。思路分析 用遞迴思想,依次將兩個鍊錶的每個元素遞迴對比後實現,注意此題考查 的魯棒性,故判斷條件不能少!function listnode x function merge phead1,phead...