題目簡介:將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。
示例:輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
#include using namespace std;
/** definition for singly-linked list.
* struct listnode
* };
*/struct listnode
};class solution
else if(l2 == null)
else
else}}
};int main()
cout << n->val;
return 0;
}
需要注意的點:
遞迴思想:
l1的值比較小或者兩個值相等,就把l1->next和l2合併,放進l1->next,返回l1;
l2的值比較小,就把l1和l2->next合併,放進l2->next,返回l2;
LEETCODE 21合併有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通 過拼接給定的兩個鍊錶的所有節點組成的。1.迭代法,比較原兩煉表中元素大小後將元素插入新的鍊錶中 listnode mergetwolists listnode l1,listnode l2 else prev prev next prev ne...
LeetCode21 合併2個有序鍊錶
鍊錶已經有序,可使用雙指標l1和l2,分別指向第乙個和第二個鍊錶。再設定乙個指向新煉表頭節點的指標,以及維護乙個指向新鍊錶最後乙個節點的指標。使用雙指標遍歷遍歷兩個鍊錶,比較後將節點新增到新鍊錶的末尾。反思 知道要使用雙指標,但是並未想到設定哨兵和尾指標 指向新鍊錶 一開始的思路是將第二個鍊錶的節一...
leetcode21 合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 思路 每次判斷兩個鍊錶的頭部小的數值,訪問小的,並讓該鍊錶往後移動。注意 注意鍊錶走完,為空的情況即可。遇到的問題 一開始不太理解鍊錶,返回e...