21_合并两个有序链表[EASY]
约 193 字小于 1 分钟
2026-03-21
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1: 
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]解题思路
用两个指针,一个记录表头,一个用来迭代
ListNode dummy = new ListNode(-1);
ListNode curr = dummy;循环判断 list1 和 list2 的当前节点 ,将 curr.next 赋值给较小的,然后 curr = curr.next
Java 实现
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
ListNode dummy = new ListNode(-1);
ListNode curr = dummy;
while(list1 != null && list2 != null){
if (list1.val >= list2.val){
curr.next = list2;
list2 = list2.next;
} else {
curr.next = list1;
list1 = list1.next;
}
curr = curr.next;
}
curr.next = list1 == null ? list2 : list1;
return dummy.next;
}