/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
ListNode head = new ListNode(-1);
ListNode newList = head;
if (list1 == null) return list2;
if (list2 == null) return list1;
while (list1 != null && list2 != null) {
if (list1.val > list2.val) {
newList.next = list2;
list2 = list2.next;
} else {
newList.next = list1;
list1 = list1.next;
}
newList = newList.next; // 结点前移
}
if (list1 != null) newList.next = list1;
if (list2 != null) newList.next = list2;
return head.next;
}
}
// ----------------递归版本-------------------------------------------------------------
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) return l2;
if (l2 == null) return l1;
ListNode res = l1.val < l2.val ? l1 : l2;
res.next = mergeTwoLists(res.next, l1.val >= l2.val ? l1 : l2);
return res;
}
21 合并两个有序链表
最新推荐文章于 2024-07-25 18:40:03 发布