JavaScript数据结构与算法愚见(一)

73 阅读1分钟

迭代,可以理解为:用循环(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);
 
};