这道题不难,只需要递归就可以完成了,代码不是很简洁,但是也可以一看就能明白!
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
ListNode listNode = new ListNode();
if (list1 == null && list2 == null) { //递归结束的判定条件
return null;
} else {
if (list1 != null && list2 != null) { //两个都不为空的情况
int x = list1.val;
int y = list2.val;
if (x <= y) {
listNode.val = x;
list1 = list1.next;
} else {
listNode.val = y;
list2 = list2.next;
}
} else {
if (list1 == null) { //第一个为空的情况
listNode.val = list2.val;
list2 = list2.next;
} else { //第二个为空的情况
listNode.val = list1.val;
list1 = list1.next;
}
}
}
listNode.next = mergeTwoLists(list1, list2);
return listNode;
}