合併兩個排序的鍊錶遞迴和非遞迴C 實現

2022-03-20 05:07:58 字數 626 閱讀 7706

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

已知輸入的兩個鍊錶遞增有序,要使輸出的鍊錶依然遞增有序,可以依次從輸入的兩個鍊錶中挑選最小的元素插入到輸出的鍊錶尾部,便可實現輸出鍊錶遞增有序。 

struct

listnode

};

/*

遞迴實現合併兩個排序鍊錶

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

else

}

/*

非遞迴實現合併兩個排序鍊錶

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

else

p = p->next;

}if(phead1 !=null)

if(phead2 !=null)

return phead->next;

}

這道題使對單鏈表操作比較經典的題目,無論是考研還是面試出現的概率都非常高。題目的思路較為簡單,編碼實現稍微難點,難度雖不大,但能考察編碼基礎功力和對單鏈表的深一層的理解,所以須熟練掌握。

合併兩個有序鍊錶(遞迴和非遞迴方法C )

利用遞迴和非遞迴方法合併兩個有序鍊錶 注意點 1 中以輸入的方式生成兩個鍊錶,在生成完畢第乙個鍊錶之後要將cin的內容清空。不然會引起第二個鍊錶無法輸入生成的問題。include include using namespace std struct node node creatlist while...

合併兩個排序的鍊錶 鍊錶 遞迴

題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。思路分析 用遞迴思想,依次將兩個鍊錶的每個元素遞迴對比後實現,注意此題考查 的魯棒性,故判斷條件不能少!function listnode x function merge phead1,phead...

遞迴合併兩個有序鍊錶

遞迴 程式呼叫自身的程式設計技巧稱為遞迴。一般來說,遞迴需要有邊界條件 遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進 當邊界條件滿足時,遞迴返回。遞迴終止條件 遞迴的終止條件一般定義在遞迴函式內部,在遞迴呼叫前要做乙個條件判斷,根據判斷的結果選擇是繼續呼叫自身,還是return 返回終止遞迴...