迭代和递归

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-22 15:11   11   0

迭代,可以理解为:用循环(for/while)去遍历操作

递归,可以理解为:用同一个函数,不同参数去一层一层的操作。嵌套的函数的参数是本函数的某些结果。

如:反转链表

// 迭代 
var reverseList = function(head) {
     let [pre, curr] = [null, head];     
       while(curr) {
         let temp = curr.next
         curr.next = pre
         pre = curr
         curr = temp
     }
     return pre
 }
  
// 递归
var reverseList = function(head) {
    return reverse(null, head);
};
function reverse (prev, curr) {
    if (!curr) return prev;
    let tmp = curr.next;
    curr.next = prev;
    return reverse(curr, tmp);

};

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP