@@ -44,27 +44,25 @@ https://leetcode-cn.com/problems/merge-two-sorted-lists
4444
4545## 代码
4646
47- - 语言支持:CPP, JS
47+ - 语言支持:CPP, JS
4848
4949CPP Code:
5050
5151``` cpp
5252class Solution {
5353public:
54- ListNode* mergeTwoLists(ListNode* a , ListNode* b ) {
55- ListNode head, * tail = &head;
56- while (a && b) {
57- if (a->val <= b->val ) {
58- tail->next = a ;
59- a = a->next;
60- } else {
61- tail->next = b ;
62- b = b->next;
63- }
64- tail = tail->next ;
54+ ListNode* mergeTwoLists(ListNode* l1 , ListNode* l2 ) {
55+ if (l1 == nullptr) {
56+ return l2;
57+ } else if (l2 == nullptr ) {
58+ return l1 ;
59+ } else if (l1->val < l2->val) {
60+ l1->next = mergeTwoLists(l1->next, l2);
61+ return l1 ;
62+ } else {
63+ l2->next = mergeTwoLists(l1, l2->next);
64+ return l2 ;
6565 }
66- tail->next = a ? a : b;
67- return head.next;
6866 }
6967};
7068```
@@ -110,9 +108,55 @@ M、N 是两条链表 l1、l2 的长度
110108
111109## 扩展
112110
113- - 你可是使用迭代的方式求解么?
111+ - 你可以使用迭代的方式求解么?
112+
113+ 迭代的 CPP 代码如下:
114+
115+ ``` cpp
116+ class Solution {
117+ public:
118+ ListNode* mergeTwoLists(ListNode* a, ListNode* b) {
119+ ListNode head, * tail = &head;
120+ while (a && b) {
121+ if (a->val <= b->val) {
122+ tail->next = a;
123+ a = a->next;
124+ } else {
125+ tail->next = b;
126+ b = b->next;
127+ }
128+ tail = tail->next;
129+ }
130+ tail->next = a ? a : b;
131+ return head.next;
132+ }
133+ };
134+ ```
135+
136+ 迭代的 JS 代码如下:
137+
138+ ```js
139+ var mergeTwoLists = function (l1, l2) {
140+ const prehead = new ListNode(-1);
141+
142+ let prev = prehead;
143+ while (l1 != null && l2 != null) {
144+ if (l1.val <= l2.val) {
145+ prev.next = l1;
146+ l1 = l1.next;
147+ } else {
148+ prev.next = l2;
149+ l2 = l2.next;
150+ }
151+ prev = prev.next;
152+ }
153+ prev.next = l1 === null ? l2 : l1;
154+
155+ return prehead.next;
156+ };
157+ ```
114158
115- 大家对此有何看法,欢迎给我留言,我有时间都会一一查看回答。更多算法套路可以访问我的 LeetCode 题解仓库:https://github.com/azl397985856/leetcode 。 目前已经 37K star 啦。
159+ 大家对此有何看法,欢迎给我留言,我有时间都会一一查看回答。更多算法套路可以访问我的 LeetCode 题解仓库:https://github.com/azl397985856/leetcode 。 目前已经 40K star 啦。
116160大家也可以关注我的公众号《力扣加加》带你啃下算法这块硬骨头。
117161
118162![ ] ( https://tva1.sinaimg.cn/large/007S8ZIlly1gfcuzagjalj30p00dwabs.jpg )
0 commit comments