144. 二叉树的前序遍历

入栈顺序:根-->右-->左

 //遇到根节点则出栈,先入栈右节点,再入栈左节点
var preorderTraversal = function(root) {let arr=[]let stack=[root]//如果根节点为空if(!root){return arr}let cur=null//栈不为空while(stack.length){cur=stack.pop()arr.push(cur.val)cur.right&&stack.push(cur.right)cur.left&&stack.push(cur.left)}return arr
};

145. 二叉树的后序遍历

入栈顺序:根--左--右

然后再反转数组

var postorderTraversal = function(root) {let s=[root]let arr=[]let cur=nullif(!root){return arr}while(s.length){cur=s.pop()arr.push(cur.val)//左cur.left&&s.push(cur.left)//右cur.right&&s.push(cur.right)}return arr.reverse()
};

94. 二叉树的中序遍历

var inorderTraversal = function(root) {let s=[]let cur=rootlet arr=[]while(s.length||cur){//一直遍历左子树if(cur){s.push(cur)cur=cur.left}else{//当前节点无左子节点,弹出当前节点,再遍历右子树cur=s.pop()arr.push(cur.val)cur=cur.right//如果无右子节点,将弹出上一个节点,再遍历右子树}}return arr
};

二叉树的迭代遍历(JavaScript)相关推荐

  1. 代码随想录day13|二叉树理论基础、二叉树的递归遍历、二叉树的迭代遍历

    二叉树理论基础 这边需要重点注意的是二叉树的链式节点的定义 struct TreeNode(){int val;TreeNode *left;TreeNode *right;TreeNode(int ...

  2. day11二叉树的遍历(递归遍历和迭代遍历)

    二叉树的迭代遍历有点难理解,需要手动多模拟模拟 1.二叉树的种类 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树. 完全二叉树的定义如下:在 ...

  3. 二叉树的层序遍历和前中后序遍历代码 迭代/递归

    二叉树的层序遍历和前中后序遍历代码 迭代/递归 只记录代码.思路参考代码随想录:https://github.com/youngyangyang04/leetcode-master/blob/mast ...

  4. 【二叉树的迭代版后序遍历】LeetCode 145. Binary Tree Postorder Traversal

    LeetCode 145. Binary Tree Postorder Traversal Solution1:递归版答案 二叉树的后序遍历递归版是很简单的,关键是迭代版的代码既难理解又难写!但听了花 ...

  5. 剑指offer——复习1:二叉树三种遍历方式的迭代与递归实现

    剑指offer--复习1:二叉树三种遍历方式的迭代与递归实现 20180905更新:这个博客中的解法不是很好,看相应的LeetCode题目笔记~~~ 我感觉此博客中的说法更容易让人理解:https:/ ...

  6. 二叉树先序遍历(递归+迭代)——java

    目录 一.题目 二.先序遍历讲解 三.先序遍历递归法实现(详解+代码) 1.递归实现讲解: 2.代码实现: 四.先序遍历迭代法实现(详解+代码) 1.迭代法实现讲解 2.具体代码实现 一.题目 lee ...

  7. Java二叉树后序遍历:递归与迭代

    二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树:左子树和右子树又同样都是二叉树. 如下便是一棵二叉树: 二叉树的后序遍历方式为: 1. 如果根节点有左 ...

  8. 【代码随想录训练营】【Day14】第六章|二叉树|理论基础|递归遍历|迭代遍历|统一迭代

    理论基础 二叉树的定义形式有:节点指针和数组 在数组中,父节点的下标为i,那么其左孩子的下标即i*2+1,右孩子的下标即为i*2+2 二叉树的常见遍历形式有:前序遍历.后序遍历.中序遍历和层序遍历 前 ...

  9. leetcode144. 二叉树的前序遍历(递归+迭代)

    一:题目 二:上码 1:递归 class Solution {public:void preorder(TreeNode* root,vector<int>&v ) {if(roo ...

最新文章

  1. 未能加载包studio package_Xrepo:一个现代化的跨平台 C/C++ 包管理器
  2. 命名空间system中不存在data_patternplot包:用ggplot解决你对线性填充,不!所有填充的全部幻想。...
  3. python 计算曲线面积_微积分到底有多神?能完成多少不可思议,难以测量的计算?他简直强大的让人害怕!...
  4. FTP已登录,读取目录列表失败
  5. Java枚举enum使用及相关的操作
  6. 阿里矢量图标库的使用方法
  7. python爬虫实例项目大全-GitHub 上有哪些优秀的 Python 爬虫项目?
  8. 这些好用的音频、视频素材网站,你值得拥有。
  9. Python入门者必须吃透嚼烂的69个内置函数一(1含案例详解)
  10. MySQL 安装 + 入门大全 + 常用命令合集
  11. Result的类型分析和总结
  12. Fresco之强大之余的痛楚
  13. 运动无线耳机推荐,六款运动爱好者必备的耳机
  14. 杨幂生日祝福贺卡!!~
  15. component: resolve = require(['@/view/index.vue'], resolve) 与component: index区别
  16. 华师大 OJ 2850
  17. Selenium中的By模块
  18. Java+MySQL基于Springboot+vue的化妆品美妆销售商城网站——计算机毕业设计
  19. GPU与深度学习和药物开发
  20. PCB板厂工厂常用的英文

热门文章

  1. mysql 内联和外联的区别_内联查询与外联查询
  2. 计算机网络实验指导书 pdf,计算机网络实验指导书-20210608153043.pdf-原创力文档
  3. PCI、PCI-X、PCI-E AGP区别
  4. 手动代码上线 及个人优化调整
  5. 1小时搞懂设计模式之策略模式
  6. 目标赋予生命的意义和目的
  7. Android软键盘弹出引起的各种不适终极解决方案
  8. List遍历删除元素remove()
  9. 基于JAVA+SpringBoot+Mybatis+MYSQL的电影院管理系统
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的仓库物品管理系统