
LeetCode 训练场:145. 二叉树的后序遍历
postOrderTraversal方法:这是主方法,负责启动后序遍历。它接受二叉树的根节点作为输入,返回一个包含节点值的列表。 postOrder方法:这是递归的核心方法。它接受当前节点和结果列表作为参数。如果当前节点不为空,则递归处理左子树和右子树,最后将当前节点的值添加到结果列表中。
发布日期:2021-05-08 06:28:23
浏览次数:15
分类:精选文章
本文共 1090 字,大约阅读时间需要 3 分钟。
二叉树的后序遍历
问题描述
给定一个二叉树,返回它的后序遍历结果。
输入:二叉树的根节点。 输出:包含节点值的列表,按后序遍历顺序排列。思路说明
后序遍历是一种常见的树遍历方式,其特点是先遍历左子树,再遍历右子树,最后访问根节点。这种遍历方式在某些应用场景中非常有用,例如在某些计算或累加操作中,先处理叶子节点再处理根节点会更合理。
实现后序遍历的常用方法是使用递归算法。递归的思路非常适合处理树结构,因为每个节点的操作可以独立分解为处理左子树和右子树两个步骤。
实现代码
import java.util.ArrayList;import java.util.List;public class BinaryTreePostOrder { public ListpostOrderTraversal(TreeNode root) { List result = new ArrayList<>(); postOrder(root, result); return result; } private void postOrder(TreeNode root, List result) { if (root != null) { // 处理左子树 postOrder(root.left, result); // 处理右子树 postOrder(root.right, result); // 处理当前节点 result.add(root.val); } }}
代码解释
这种实现方式的时间复杂度是O(n),其中n是树的节点数。因为每个节点都会被访问一次。
总结
通过递归方法,我们可以轻松实现二叉树的后序遍历。这种方法的时间复杂度是O(n),空间复杂度是O(n),其中n是树的节点数。递归算法的思路简单直观,适合处理树结构的各种问题。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年03月30日 03时35分07秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
keil左侧文件调整方法
2019-03-05
本地分支关联远程分支
2019-03-05
STM8 GPIO模式
2019-03-05
STM32boot启动
2019-03-05
回调函数(callback function)
2019-03-05
omnet++
2019-03-05
23种设计模式一:单例模式
2019-03-05
Qt中的析构函数
2019-03-05
CSharp中委托(一)委托、匿名函数、lambda表达式、多播委托、窗体传值、泛型委托
2019-03-05
二叉堆的c++模板类实现
2019-03-05
C语言实现dijkstra(adjacence matrix)
2019-03-05
用C#实现封装-徐新帅-专题视频课程
2019-03-05
C语言学习从初级到精通的疯狂实战教程-徐新帅-专题视频课程
2019-03-05
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2019-03-05
NAT工作原理
2019-03-05
Processes, threads and goroutines
2019-03-05
c++中的10种常见继承
2019-03-05
E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用
2019-03-05
Vue学习—深入剖析渲染函数
2019-03-05
Vue学习—深入剖析函数式组件
2019-03-05