当前位置: 首页 > article >正文

[145] 二叉树的后序遍历 js

题目描述:给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历

解题思路:

迭代法:

后序(左右根)

先序是根左右 后序是左右根 后序翻转一下就是 根右左

所以后序的结果实际就是 先序的方法,调换左右节点的访问顺序

解法一(递归):

const postOrder = (root) => {
  const traverse = (curNode,res) => {
    if(curNode === null) {
      return;
    }
    traverse(curNode.left,res);
    traverse(curNode.right,res);
    res.push(curNode.value);
  }
  let res = [];
  traverse(root);
  return res;
}

用时:

// Your runtime beats 83.33 % of typescript submissions

// Your memory usage beats 5.55 % of typescript submissions (51.7 MB)

解法二(迭代法):

let postOrder = (root) => {
  if(root === null) {
    return [];
  }
  let stack = [root];
  let res = [];
  while(stack.length){
    let cur = stack.pop();
    res.push(cur.val);
    if(cur.left) {
      stack.push(cur.left);
    }
    if(cur.right) {
      stack.push(cur.right)
    }
  }
  return res.reverse();
}

用时:

// Your runtime beats 82.48 % of typescript submissions

// Your memory usage beats 5.12 % of typescript submissions (51.7 MB)


http://www.kler.cn/a/234164.html

相关文章:

  • u盘加密软件有哪些?2025年必备的u盘加密神器分享(共6款!提前布局!)
  • 分享 pdf 转 word 的免费平台
  • react-redux useSelector钩子 学习样例 + 详细解析
  • 【Visual Studio】使用VS调试(Debug)
  • 微信小程序的主体文件和页面文件介绍
  • 亲测有效:Maven3.8.1使用Tomcat8插件启动项目
  • /etc/apt/sources.list 包含ubuntu18.04或bionic字样的解决思路
  • C语言字符常量与字符变量..
  • 前端修炼手册(uniapp的api篇)
  • Ansys方法基础
  • MacOS - M1芯片 Mac 在“恢复”模式中启用系统扩展教程
  • 更新win11后无法上网
  • Java继承和组合
  • 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏17(附项目源码)
  • 如何解决利用cron定时任务自动更新SSL证书后Nginx重启问题
  • 如何从 iPhone 恢复已删除的视频:简单有效方法
  • 【漏洞复现】多语言药房管理系统MPMS文件上传漏洞
  • [论文总结] 深度学习在农业领域应用论文笔记12
  • LayUI中表格树折叠 --
  • Redis -- 安装客户端redis-plus-plus
  • 形态学算法之边界提取的简单python实现——图像处理
  • C# Socket通信从入门到精通(21)——Tcp客户端判断与服务器断开连接的三种方法以及C#代码实现
  • 1.5 Binance_interface API 币本位合约行情
  • Java基础知识总结(持续更新中)
  • 第一篇【传奇开心果微博文系列】Python微项目技术点案例示例:pillow库实现毛笔字春联
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:461-480)