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

算法通关村第七关|黄金挑战|迭代实现二叉树的前、中、后序遍历

1.迭代实现前序遍历

public List<Integer> preOrderTraversal(TreeNode root) {List<Integer> res = new ArrayList<Integer>();if (root == null) {return res;}Deque<TreeNode> stack = new LinkedList<TreeNode>();TreeNode node = root;while (!stack.isEmpty() || node != null) {while (node != null) {res.add(node.val);stack.push(node);node = node.left;}node = stack.pop();node = node.right;}return res;
}

2.迭代实现中序遍历

public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<Integer>();Deque<TreeNode> stack = new LinkedList<TreeNode>();while (root != null || !stack.isEmpty()) {while (root != null) {stack.push(root);root = root.left;}root = stack.pop();res.add(root.val);root = root.right;}return res;
}

3.迭代实现后序遍历(反转法)

将后序遍历的结果反过来就是类似于前序遍历的结果,只不过前序遍历先找左孩子,后序反过来是先找右孩子。

public List<Integer> postOrderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();if (root == null) {return res;}Deque<TreeNode> stack = new LinkedList<TreeNode>();TreeNode node = root;while (!stack.isEmpty() || node != null) {while (node != null) {res.add(node.val);stack.push(node);node = node.right;}node = stack.pop();node = node.left;}Collections.reverse(res);return res;
}

如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤
个人主页:星不易 ♥
算法通关村专栏:不易|算法通关村 ♥

http://www.lryc.cn/news/221258.html

相关文章:

  • 了解高防服务器的工作原理
  • AVL树性质和实现
  • 出口贸易媒体发稿推广6个技巧提升品牌知名度-华媒舍
  • 学习笔记:CANOE模拟LIN主节点和实际从节点进行通信测试
  • 模型可解释性
  • Django初窥门径-自定义用户模型
  • 微信小程序文件上传wx.uploadFile
  • 支持内录系统声音的Mac录屏软件Omi Recorder
  • 一、Hadoop初始化配置(final+ubuntu保姆级教程)
  • Linux常用的包管理工具
  • python随机生成指定长度的字符串
  • 语音识别接口试用
  • Java的数组使用
  • 基于STC15单片机温度光照蓝牙传输-proteus仿真-源程序
  • Jmter接口网站压力测试工具
  • 7.2 创建和销毁条件变量
  • 九凌网络:谷歌seo优化和外贸建站的五大优势
  • 【vue3/echarts】vue3中使用echarts/饼图/双轴双数据柱状图
  • 【左程云算法全讲4】比较器和堆
  • 【计算机组成与设计】Chisel取指和指令译码设计
  • 「Verilog学习笔记」位拆分与运算
  • protobufjs实现protobuf序列化与反序列化
  • el-select多选以tag展示时,超过显示长度以...省略号显示,且在一行展示
  • 计算机网络第4章-通用转发和SDN
  • DDD技术方案落地实践 | 京东云技术团队
  • MySQL 案例:update set 和 and 的坑
  • VSCode remote-ssh 连接远端服务器失败
  • 通达信动量线MTM指标原理详解及MTM底背离选股公式
  • 汇编-DUP操作符
  • 2311C++抽象工厂