什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 回溯是递归的副产品,只要有递归就会有回溯。 所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。 回溯法的效率 回溯法的性能如何呢,这里要和大家说清楚了,虽然回溯法很难,很不好理解,但是回溯法并不是什么高效的算法。<
235. 二叉搜索树的最近公共祖先
530. 二叉搜索树的最小绝对差 提示:</
654. 最大二叉树 思路:(递归)循环找最大值及下标,最大值左侧为左子树,右侧为右子树
513. 找树左下角的值 思路:层序遍历最简单
110. 平衡二叉树 思路:后序遍历,由下往上回溯
104. 二叉树的最大深度(层序,递归)
层序遍历 层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。 需要借用一个辅助数据结构即队列来实现, 队列先进先出,符合一层一层遍历的逻辑, 而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。 而这种层序遍历方式就是图论中的广度优先遍历
递归算法 前序遍历代码运行过程: A / \ B C / \ \ D E F def preorder_traversal(root): if root: print(root.value, end=' ') # 访问根节点