Skip to content

Commit 9f3365e

Browse files
committed
三刷21
1 parent fd7020d commit 9f3365e

File tree

4 files changed

+68
-15
lines changed

4 files changed

+68
-15
lines changed

docs/0021-merge-two-sorted-lists.adoc

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,9 @@ image::images/0021-00.jpg[{image_attr}]
1616

1717
== 思路分析
1818

19-
=== 迭代
19+
最先想到的是迭代。
2020

21-
[[src-0021]]
22-
[{java_src_attr}]
23-
----
24-
include::{sourcedir}/_0021_MergeTwoSortedLists.java[tag=answer]
25-
----
26-
27-
[{java_src_attr}]
28-
----
29-
include::{sourcedir}/_0021_MergeTwoSortedLists_2.java[tag=answer]
30-
----
31-
32-
=== 递归
33-
34-
没想到这个题也可以用递归解决!
21+
但是,也可以用递归解决!
3522

3623
image::images/0021-09.png[{image_attr}]
3724

@@ -53,6 +40,37 @@ image::images/0021-07.jpeg[{image_attr}]
5340

5441
image::images/0021-08.jpeg[{image_attr}]
5542

43+
[[src-0021]]
44+
[tabs]
45+
====
46+
一刷::
47+
+
48+
--
49+
[{java_src_attr}]
50+
----
51+
include::{sourcedir}/_0021_MergeTwoSortedLists.java[tag=answer]
52+
----
53+
--
54+
55+
二刷::
56+
+
57+
--
58+
[{java_src_attr}]
59+
----
60+
include::{sourcedir}/_0021_MergeTwoSortedLists_2.java[tag=answer]
61+
----
62+
--
63+
64+
三刷::
65+
+
66+
--
67+
[{java_src_attr}]
68+
----
69+
include::{sourcedir}/_0021_MergeTwoSortedLists_3.java[tag=answer]
70+
----
71+
--
72+
====
73+
5674

5775
== 参考资料
5876

logbook/202406.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,11 @@
600600
|{doc_base_url}/0343-integer-break.adoc[题解]
601601
|动态规划,数学分析也可以看一下:怎么样计算自然底数 `e` 的值?
602602

603+
|{counter:codes}
604+
|{leetcode_base_url}/merge-two-sorted-lists/[21. Merge Two Sorted Lists^]
605+
|{doc_base_url}/0021-merge-two-sorted-lists.adoc[题解]
606+
|递归
607+
603608
|===
604609

605610
截止目前,本轮练习一共完成 {codes} 道题。

src/main/java/com/diguage/algo/leetcode/_0021_MergeTwoSortedLists_2.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
*/
2828
public class _0021_MergeTwoSortedLists_2 {
2929
// tag::answer[]
30+
/**
31+
* @author D瓜哥 · https://www.diguage.com
32+
* @since 2024-07-02 19:43:59
33+
*/
3034
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
3135
if (Objects.isNull(l1)) {
3236
return l2;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.diguage.algo.leetcode;
2+
3+
import com.diguage.algo.util.ListNode;
4+
5+
public class _0021_MergeTwoSortedLists_3 {
6+
// tag::answer[]
7+
/**
8+
* @author D瓜哥 · https://www.diguage.com
9+
* @since 2024-07-02 19:43:59
10+
*/
11+
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
12+
if (l1 == null) {
13+
return l2;
14+
} else if (l2 == null) {
15+
return l1;
16+
} else if (l1.val < l2.val) {
17+
// 升序链表,则把最小的留下,其余的进行递归。
18+
l1.next = mergeTwoLists(l1.next, l2);
19+
return l1;
20+
} else {
21+
l2.next = mergeTwoLists(l1, l2.next);
22+
return l2;
23+
}
24+
}
25+
// end::answer[]
26+
}

0 commit comments

Comments
 (0)