题目描述

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:

  1. 输入:1->2->4, 1->3->4
  2. 输出:1->1->2->3->4->4

题解

直接循环比较能解出此题,更加简洁的方法是像下面这样使用递归:

  1. public static ListNode MergeTwoLists(ListNode l1, ListNode l2)
  2. {
  3. if (l1 == null) return l2;
  4. if (l2 == null) return l1;
  5. if (l1.val < l2.val)
  6. {
  7. l1.next = MergeTwoLists(l1.next, l2);
  8. return l1;
  9. }
  10. l2.next = MergeTwoLists(l1, l2.next);
  11. return l2;
  12. }