1、数组排序 快排 递归
var sortArray = function(nums){
// 递归后 中止条件
if(nums.length<=1){
return nums
}
// 取出第一项 也可以时其他项
let cur =nums[0];
let left=[];
let right =[];
// 循环剩下的项 和第一项比价 小的放left 大的放right
for(let i=1;i<nums.length;i++){
if(nums[i]>=cur){
right.push(nums[i])
}else{
left.push(nums[i])
}
}
// 递归排列left和right 知道每一项都只有一个元素 连接数组
return sortArray(left).concat([cur]).concat(sortArray(right))
}
2、合并两个有序链表
var mergeTwoLists = function(l1, l2) {
//边界条件
if(l1==null&&l2==null){
return null
}
if(l1==null){
return l2
}
if(l2==null){
return l1
}
//确保l1、l2都不为空
if(l1.val>l2.val){
l2.next=mergeTwoLists(l1,l2.next);
return l2;
}else{
l1.next=mergeTwoLists(l1.next,l2);
return l1;
}
};