题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1:
1 2
| 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4]
|
示例 2:
示例 3:
提示:
- 两个链表的节点数目范围是
[0, 50]
-100 <= Node.val <= 100
l1
和 l2
均按 非递减顺序 排列
题目思路
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { if (list1 == null && list2 == null) { return null; } if (list1 == null) { return list2; } if (list2 == null) { return list1; } ListNode res = list1; if (list1.val <= list2.val) { res = list1; list1 = list1.next; } else { res = list2; list2 = list2.next; } ListNode temp = res; while (list1 != null || list2 != null) { if (list1 != null && list2 != null) { if (list1.val <= list2.val) { res.next = list1; list1 = list1.next; } else { res.next = list2; list2 = list2.next; } } else if (list1 == null && list2 != null) { res.next = list2; list2 = list2.next; } else if (list1 != null && list2 == null) { res.next = list1; list1 = list1.next; } res = res.next; } return temp; } }
|