Skip to content

Commit 3058760

Browse files
add iteration solution for leetcode 21
1 parent 9db690b commit 3058760

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

algorithms/mergeTwoSortedLists/Solution.java

+31
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
public class Solution {
2+
3+
//迭代,空间复杂度O(m+n)
24
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
35
if (null == l1) {
46
return l2;
@@ -12,4 +14,33 @@ public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
1214
return l2;
1315
}
1416
}
17+
18+
//递归,空间复杂度O(1)
19+
public ListNode iterationTwoLists(ListNode l1, ListNode l2) {
20+
//链表头部节点
21+
ListNode preHeadNode = new ListNode(-1);
22+
//返回排序链表的指针
23+
ListNode prev = preHeadNode;
24+
while (null != l1 && null != l2) {
25+
if (l1.val <= l2.val) {
26+
prev.next = l1;
27+
l1 = l1.next;
28+
} else {
29+
prev.next = l2;
30+
l2 = l2.next;
31+
}
32+
prev = prev.next;
33+
}
34+
prev.next = null == l1 ? l2 : l1;
35+
return preHeadNode.next;
36+
}
37+
38+
static class ListNode {
39+
public int val;
40+
public ListNode next;
41+
42+
public ListNode(int val) {
43+
this.val = val;
44+
}
45+
}
1546
}

0 commit comments

Comments
 (0)