将两个升序链表合并为一个新的?升序?链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。?
使用递归
思路
list1 = [1, 3] , list2 = [2, 4]
第一步 1 < 2?? ? ?? list1.next = mergeTwoLists([3], [2, 4]) return list1 = [1, 2, 3, 4]???
第二步 3 > 2? ? list2.next = mergeTwoLists([3], [4]) return list2 = [2, 3, 4]
第三步 3 < 4? list1.next = mergeTwoLists(null, [4]) return list1?= [3, 4]
第四步 list1 === null return list2 = [4]? ? ? ? ? ? ? ??
第五步 因为第四步list1===null,第三步mergeTwoLists(null, [4]),list2=[4],所以第四步中的return list2 = [4]
第六步? 因为第二步mergeTwoLists([3], [4]),所以list1=[3],第四步return list2=[4],所以第三步list1.next=[4],所以第三步的return list1 = [3, 4]
第七步 因为第三步的return list1 = [3, 4],所以第二步的list2.next = [3, 4]。因为第一步mergeTwoLists([3], [2, 4]),因为第二步mergeTwoLists([3], [4]),所以第一步list2=[2, 4],第二步函数内list2.next=[4]。因此第二步return list2 = [2, 3, 4]
第八步 ?因为第二步的return list2?= [2, 3, 4],所以第一步的list1.next = [2, 3, 4]。因为list1 = [1, 3],第一步mergeTwoLists([3], [2, 4]),所以第一步函数内list1.next = [3]。所以第一步return list1 = [1, 2, 3, 4]?
没看懂的朋友,可以在讨论区里一起讨论一下~?
|