二叉树-迭代and递归

16 阅读1分钟

迭代:就是过程体的反复循环,即重复执行过程体,每一轮执行即为迭代,每次迭代通常会用到上一次迭代的结果,过程体会被反复迭代,直到循环结束。【1】

递归:则是把当前问题分解为规模更小的子问题,每个子问题的解决又用到了当前问题的解法,子问题和当前问题性质相同但是规模更小,这样可以对每个子问题调用解决当前问题的过程,即递归调用.【1】

递归可能的问题:

  1. 冗余计算:原因是,递归过程并不记录中间变量的结果,如果其他路径用到同样的结果需要重复计算。解决该问题,可以通过全局变量记录递归过程结果。用空间换取效率。
  2. 栈溢出:递归前,设定好特定的递归层数

练习:leetcode 101

(101. 对称二叉树 - 力扣(LeetCode)) 该题并不是常规意义的二叉树结构的题目。即并不能通过中序遍历等或者层次遍历解决。 理解迭代和递归的含义。才能解决此类问题。

参考链接

【1】[www.zhihu.com/question/55…] 【2】[www.linkedin.com/pulse/recur…]