public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) return l2;
if (l2 == null) return l1;
ListNode head = new ListNode(Math.min(l1.val, l2.val));
if (l1.val > l2.val) head.next = mergeTwoLists(l2.next, l1);
else head.next = mergeTwoLists(l2, l1.next);
return head;
}
采用递归实现
最后一层的递归找到了最后一个节点,然后return head就是return了这个节点,将这个节点返回给了上一个节点的head.next。然后上一个节点继续return head,返回这个节点,将这个节点返回给了上一个节点的next。