
数据结构与算法
文章平均质量分 57
一米阳光给的温暖
这个作者很懒,什么都没留下…
展开
-
迭代法丨二叉树的前序遍历
迭代法和递归法的算法都属于BFS(深度优先)范围 前序遍历的顺序是:根->左->右 迭代法利用栈的特性,储存节点后,节点出栈能按照原来二叉树自下而上的顺序访问节点(二叉树的三种遍历也是自下而上的)。 在二叉树的遍历中所有根节均视为左节点,当需要转到右节点时,代码将右节点视为左节点压栈,因此在遍历时其实对于程序来说,没有根节点和右节点的概念,均视为左节点来进行操作。 下面代码中,while循环一路寻找最左边的叶子节点,并入栈之前先将节点值加入结果集,表示先访问了根节点,然后继续访问左节点,.原创 2021-05-27 20:44:40 · 432 阅读 · 0 评论 -
分治法丨二叉树的前序遍历
分治法在二叉树遍历中是一种深度优先遍历(DFS),将问题拆解成子问题后,然后合并子问题。 分解:拆解为规模更小的子问题,将问题拆解为足够小时,然后求解。 合并:将每个子问题结果进行合并,然后完成整体问题。 class Solution { public List<Integer> preorderTraversal(TreeNode root) { // 结束条件 if(root==null){ ArrayList<Int原创 2021-05-29 09:12:38 · 669 阅读 · 0 评论