文章524
标签277
分类67

算法:合并两个排序的链表


合并两个排序的链表

合并两个排序的链表

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。


分析

其实就是类似于归并排序中归并的操作;


代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Solution {
public ListNode Merge(ListNode list1, ListNode list2) {
if (list1 == null && list2 == null) return null;
if (list1 == null) return list2;
if (list2 == null) return list1;

ListNode scott = new ListNode(0);
ListNode cur = scott;
while (list1 != null && list2 != null) {
if (list1.val < list2.val) {
cur.next = list1;
list1 = list1.next;
} else {
cur.next = list2;
list2 = list2.next;
}
cur = cur.next;
}

if (list1 != null) cur.next = list1;
if (list2 != null) cur.next = list2;
return scott.next;
}
}

本文作者:Jasonkay
本文链接:https://jasonkayzk.github.io/cn/1996/07/27/%E7%AE%97%E6%B3%95-%E5%90%88%E5%B9%B6%E4%B8%A4%E4%B8%AA%E6%8E%92%E5%BA%8F%E7%9A%84%E9%93%BE%E8%A1%A8/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可