后序遍历二叉树(迭代 vs 递归)
二叉树的后序遍历
后序遍历:左 - 右 - 根
递归版本
- 注意递归的结束条件
root == null
- 按照遍历的顺序每次遇到root将答案压入结果数组中去
var postorderTraversal = function(root) {const res = [];dfs(root);return res;function dfs(root) {if (root == null) return;dfs(root.left);dfs(root.right);res.push(root.val);}
};
迭代版本
后序: 左 右 根
前序: 根 左 右
按照前序遍历的顺序,然后再翻转一下即可……
var postorderTraversal = function(root) {const res = [], stack = [];while (root || stack.length) {while (root) {res.push(root.val);stack.push(root);root = root.right;}root = stack.pop();root = root.left;}return res.reverse();
};
考过
后序遍历二叉树(迭代 vs 递归)相关推荐
- 【LeetCode笔记】94 144 145. 二叉树的前序、中序、后序遍历的迭代与递归(Java、dfs、迭代)
文章目录 一. 题目描述 二. 代码 & 思路 1. 递归的写法 2. 迭代的写法(本文重点来了) 1) 前序 2) 中序 3) 后序 直接来个整合吧,也方便看.之前只写了递归的,现在补上迭代 ...
- 二叉树的层序遍历和前中后序遍历代码 迭代/递归
二叉树的层序遍历和前中后序遍历代码 迭代/递归 只记录代码.思路参考代码随想录:https://github.com/youngyangyang04/leetcode-master/blob/mast ...
- 002 前、中、后序遍历二叉树(递归迭代)
1.递归法 ① 前序遍历二叉树 ② 中序遍历二叉树 ③ 后序遍历二叉树 2.迭代法 ① 前序遍历二叉树 ② 中序遍历二叉树 ③ 后序遍历二叉树 类似前序遍历,先"中→右→左"遍历二 ...
- 非递归先、中、后序遍历二叉树(C语言)
文章目录 前言 一.二叉树非递归遍历算法 1.先序遍历 2.中序遍历 3.后序遍历 二.完整程序 三.运行结果实例 前言 本程序采用C语言编写,栈和二叉树的基本操作函数基于严蔚敏老师的<数据结构 ...
- 非递归后序遍历二叉树总结(2种方法)
算法 非递归后序遍历二叉树总结(2种方法) @author:Jingdai @date:2020.12.04 传送门 非递归先序遍历二叉树 非递归中序遍历二叉树 方法1 非递归用栈来辅助遍历,后序遍历 ...
- 数据结构-----后序遍历二叉树非递归算法(利用堆栈实现)
一.非递归后序遍历算法思想 后序遍历的非递归算法中节点的进栈次数是两个,即每个节点都要进栈两次,第二次退栈的时候才访问节点. 第一次进栈时,在遍历左子树的过程中将"根"节点进栈,待 ...
- php循环方法实现先序、中序、后序遍历二叉树
二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree). <?phpnam ...
- //数据结构:先序、中序、后序遍历二叉树。输入数据:abd##eg###c#f#h##
//数据结构:先序.中序.后序遍历二叉树.输入数据:abd##eg###c#f#h## #include <stdio.h> #include <stdlib.h> //定义数 ...
- 中序遍历二叉树的非递归实现(利用栈)
中序遍历二叉树的非递归实现 之前的博客写了递归的实现,说白了也就是不断自己调用自身,保持左根右的顺序.只需写出整体逻辑结构,程序会自己递归复杂的过程,大体即为: void inTraverseByRe ...
最新文章
- 新手探索NLP(十一)——知识图谱
- nginxtomca负载均衡
- js 中location 的学习
- linux系统键盘记录器,可截获到 QQ 密码 键盘记录器源码
- 状态机——protothreads
- 作者:张国惠(1978-),男,美国新墨西哥大学土木工程系助理教授、博士生导师。...
- 电脑和树莓派之间文件传输
- vue怎么根据id获取组件_vue子组件,如何根据父组件传进来的id,去查询详情,并在子组件中显示?...
- python工资高还是java-Python工资高还是Java?
- 阿里矢量图标库 - Unicode 方式使用说明(两种用法)
- js获取IP地址方法总结
- 苹果电脑在哪里改计算机id,苹果MAC电脑如何更改ID账号
- Web前端html表格制作
- 商品进销差价_商品进销差价如何计算及账务处理怎么做?
- 银河帝国----基地与地球
- 雪花飘落代码java_个人网站html5雪花飘落代码JS特效下载
- 华为鸿蒙会没有广告,为什么华为会选择不做任何预告突然发布鸿蒙系统?
- MySQL语句和命令大全
- 从消息推送来看,华为、小米做得最好
- 西工大计算机学院二级教授,计算机学院高武教授:践行科研育人,培养拔尖创新人才...
热门文章
- Python机器学习——如何shuffle一个数据集(ndarray类型)
- 在现有集群环境下动态增加(下架)新的节点
- linux创建空镜像,Docker创建base镜像
- php 无刷新上传,php 无刷新上传文件的代码
- 从零开始学习python编程-Python3.5从零开始学 PDF 下载
- python项目开发实例-有趣的十个Python实战项目,让你瞬间爱上Python!
- python和java哪个好学-Java VS Python 应该先学哪个?
- 普通人学python有啥用-学习Python到底有什么用?
- 零基础学python图文版-零基础学Python(图文版)
- 什么是语音技术及其应用?语音识别的研究意义与进展