一道簡(jiǎn)單的鏈表題,將兩個(gè)升序鏈表合并成一個(gè)新的升序鏈表
創(chuàng)新互聯(lián)是一家以重慶網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、營銷推廣、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為混凝土攪拌罐等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。題目本身不難,這篇博客也不在于題這個(gè)解,單純是因?yàn)槲沂且粋€(gè)初學(xué)C++的菜鳥,第一次寫鏈表的時(shí)候被指針折磨,所以記錄一下一些可以注意的點(diǎn)
相關(guān)代碼
力扣中對(duì)單項(xiàng)鏈表的定義struct類
//Definition for singly-linked list.
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};
是很基本的由結(jié)點(diǎn)組成的單項(xiàng)鏈表,自身一個(gè)值val,指向下一個(gè)結(jié)點(diǎn)next
初始化新結(jié)點(diǎn)
ListNode* preHead = new ListNode;
ListNode* prev = preHead;
不能忘了在C++寫法上ListNode* p和ListNode p的區(qū)別,在力扣提交后者會(huì)直接報(bào)錯(cuò)
題解放最后,用迭代比較簡(jiǎn)單
ListNode mTL(ListNode* l1, ListNode* l2)
{
? ? if(l1 == NULL) return l2;
? ? else if(l2 == NULL) return l1;
? ? else if(l1->val< l2->val){
? ? ? ? l1->next = mTL(l1->next, l2);
? ? ? ? return l1;
? ? }
? ? else{
? ? ? ? l2->next = mTL(l1->next, l2);
? ? ? ? return l2;
? ? }
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧