题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
注意要点
- 不要在定义了新的ListNode节点 后,直接写出下面这种错误写法:
ListNode node = null
if (list1.val >= list2.val) {
node.next = list2
list2 = list2.next;
}
这种情形忽略了初始化为空的前提
两个有序链表,只需要不断的比较两个节点值的大小,然后依次后移挪动即可。
参考代码如下:
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if (list1 == null) {
return list2;
}
if (list2 == null) {
return list1;
}
ListNode node = null;
if (list1.val >= list2.val) {
node = list2;
node.next = Merge(list1, list2.next);
}
if (list1.val < list2.val) {
node = list1;
node.next = Merge(list1.next, list2);
}
return node;
}
}