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

145.二叉树的后序遍历

在这里插入图片描述

// 定义一个名为Solution的类,用于解决二叉树的后序遍历问题  
class Solution {  // 定义一个公共方法,输入是一个二叉树的根节点,返回一个包含后序遍历结果的整数列表  public List<Integer> postorderTraversal(TreeNode root) {  // 创建一个空的整数列表,用于存储后序遍历的结果  List<Integer> res = new ArrayList<>();  // 调用私有方法postorder进行后序遍历,并将结果存储在res列表中  postorder(root, res);  // 返回存储了后序遍历结果的列表  return res;  }  // 定义一个私有方法,输入是一个二叉树的根节点和一个用于存储结果的列表  // 该方法用于执行实际的后序遍历  void postorder(TreeNode root, List<Integer> list) {  // 如果当前节点为空,则直接返回,不进行任何操作  if (root == null) {  return;  }  // 递归地对左子树执行后序遍历  postorder(root.left, list);  // 递归地对右子树执行后序遍历  postorder(root.right, list);  // 在遍历完左右子树后,将当前节点的值添加到结果列表中  list.add(root.val); // 注意这一句,它确保了在遍历完左右子节点后,根节点的值才会被添加到结果列表中  }  
}

在这段代码中,TreeNode 是一个自定义的二叉树节点类,它至少包含三个成员:val(节点的值),left(指向左子节点的引用),和 right(指向右子节点的引用)。

postorderTraversal 方法是公共接口,它接收一个二叉树的根节点作为参数,并返回一个包含后序遍历结果的整数列表。这个方法首先创建一个空的列表 res,然后调用私有方法 postorder 来执行实际的后序遍历,并将结果添加到 res 中。最后,它返回这个列表。

postorder 方法是一个私有递归方法,它接收一个节点和一个列表作为参数。如果节点为空,则方法直接返回。否则,它首先递归地对其左子树执行后序遍历,然后对其右子树执行后序遍历,最后将当前节点的值添加到列表中。这个过程确保了后序遍历的顺序(左-右-根)被正确地遵守。

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

相关文章:

  • ssh远程连接免密码访问
  • Vue-Json-Schema-Form: 如何基于模板定制前端页面
  • 保存Json对象到数据库
  • 《Docker 简易速速上手小册》第3章 Dockerfile 与镜像构建(2024 最新版)
  • 【Python笔记-设计模式】适配器模式
  • 二分算法(c++版)
  • 【C#】用于基于 UV DLP 的 3D 打印机的切片软件源码解析(一)DLP原理 GUI
  • Javase补充-Arrays类的常用方法汇总
  • 微信小程序-人脸检测-眨眼驱动ESP32蓝牙设备灯
  • 怎么在wifi中实现手机和电脑文件互传
  • 07 STL 简介
  • unity学习(39)——创建(create)角色脚本(panel)——静态(static)
  • MacOS环境下用powerline配置Terminal终端
  • liunx单机项目部署
  • SQL 中如何实现多表关联查询?
  • oracle 设置权限 禁止删除用户
  • 港科夜闻|香港科大计划建立北部都会区卫星校园完善科大创新带,发展未来创新科技 未来医药发展及跨学科教育...
  • linux反弹shell简单使用
  • 前后端分离Vue+nodejs校园论坛bbs系统x450z
  • ChatGPT的能力边界在哪?
  • Sentinel微服务流量治理组件实战下
  • vue+node.js美食分享推荐管理系统 io551
  • 云原生超融合八大核心能力|ZStack Edge云原生超融合产品技术解读
  • 认识K8S
  • K8S-001-Virtual box - Network Config
  • ShardingSphere5.x 分库分表
  • cmake 项目。qt5升级 qt6 报错 error: “Qt requires a C++17 compiler 已解决
  • Flutter Engine 编译
  • 数据可视化在商业领域有哪些重要性?
  • UI风格汇:扁平化风格来龙去脉,特征与未来趋势