您好,登錄后才能下訂單哦!
題目:輸入兩個遞增排序的鏈表,合并這兩個鏈表并使新鏈表中的節點仍然是遞增的。
例如:
/*合并兩個排序的鏈表*/ /* 鏈表節點定義如下: struct ListNode { int _data; ListNode* _next; }; */ ListNode* MergeList(ListNode* pHead1, ListNode* pHead2) { if (pHead1 == NULL) //鏈表1為空鏈表 { return pHead2; } else if (pHead2 == NULL) // 鏈表2為空鏈表 { return pHead1; } else //鏈表1,2都不為空鏈表 { ListNode* pMergeHead = NULL; //遞歸,把剩余鏈表看作子問題 //找出值較小的節點作為pMergeHead鏈到上一層的pMergeHead->_next上 if (pHead1->_data < pHead2->_data) { pMergeHead = pHead1; pMergeHead->_next = MergeList(pHead1->_next, pHead2); } else { pMergeHead = pHead2; pMergeHead->_next = MergeList(pHead1, pHead2->_next); } return pMergeHead; } }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。