题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
解题思路:常规的解法是将两个链表中的元素先加入到一个公共容器中,然后调用排序算法按照节点的值来排序,这样算法的复杂度比较大,不是非常好。我们可以通过递归的调用来解决这个问题,AC代码如下:
public class Solution { public ListNode Merge(ListNode list1, ListNode list2) { ListNode list = null; if (list1 == null && list2 == null) return null; if (list1 == null) return list2; if (list2 == null) return list1; if (list1.val < list2.val) { list = list1; list.next = Merge(list1.next, list2); } else { list = list2; list.next = Merge(list1, list2.next); } return list; } }