当前位置:网站首页>力扣-二叉树的前序遍历、中序遍历、后序遍历
力扣-二叉树的前序遍历、中序遍历、后序遍历
2022-08-05 02:00:00 【qq_52025208】
一、题目描述:给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
1.递归:
class Solution {
List<Integer> list = new ArrayList<>();
public List<Integer> preorderTraversal(TreeNode root) {
if(root == null) return list;
list.add(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
return list;
}
}
2.非递归
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> list=new ArrayList<>();
if(root==null) return list;
Stack<TreeNode> stack=new Stack<>();
stack.push(root);
while(!stack.isEmpty()){
TreeNode node= stack.pop();
list.add(node.val);
if(node.right!=null){
stack.push(node.right);
}
if(node.left!=null){
stack.push(node.left);
}
}
return list;
}
}
二、中序遍历
递归:
class Solution {
List<Integer> list = new ArrayList<>();
public List<Integer> inorderTraversal(TreeNode root) {
if(root == null) return list;
inorderTraversal(root.left);
list.add(root.val);
inorderTraversal(root.right);
return list;
}
}
非递归:
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<>();
if(root == null) return list;
Stack<TreeNode> stack = new Stack<>();
while(root != null || !stack.empty()) {
while(root!= null) {
stack.push(root);
root = root.left;
}
root = stack.pop();
list.add(root.val);
root = root.right;
}
return list;
}
}
三、后序遍历
class Solution {
List<Integer> list = new ArrayList<>();
public List<Integer> postorderTraversal(TreeNode root) {
if(root == null) return list;
postorderTraversal(root.left);
postorderTraversal(root.right);
list.add(root.val);
return list;
}
}
边栏推荐
- .Net C# 控制台 使用 Win32 API 创建一个窗口
- 详细全面的postman接口测试实战教程
- AI+PROTAC|dx/tx完成500万美元种子轮融资
- 直播预告|30分钟快速入门!来看可信分布式AI链桨的架构设计
- 如何逐步执行数据风险评估
- Object.defineProperty实时监听数据变化并更新页面
- “嘀哩哩,等灯等灯”,工厂安全生产的提示音
- Xunrui cms website cannot be displayed normally after relocation and server change
- 【机器学习】21天挑战赛学习笔记(二)
- AI+小核酸药物|Eleven完成2200万美元种子轮融资
猜你喜欢
js中try...catch和finally的用法
MySQL3
Transfer Learning - Joint Geometrical and Statistical Alignment for Visual Domain Adaptation
Tree search (bintree)
软件测试技术之最有效的七大性能测试技术
Programmer's list of sheep counting when insomnia | Daily anecdote
关于#sql shell#的问题,如何解决?
【Redis】Linux下Redis安装
方法重写与Object类
使用SuperMap iDesktopX数据迁移工具迁移ArcGIS数据
随机推荐
Why is this problem reported when installing oracle11
Exercise: Selecting a Structure (1)
CMS website construction process
Xunrui cms website cannot be displayed normally after relocation and server change
树形查找(二叉查找树)
如何逐步执行数据风险评估
1349. 参加考试的最大学生数 状态压缩
Opencv - video frame skipping processing
"Configuration" is a double-edged sword, it will take you to understand various configuration methods
超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满
【genius_platform软件平台开发】第七十六讲:vs预处理器定义的牛逼写法!!!!(其他组牛逼conding人员告知这么配置来取消宏定义)
MySQL3
浅谈数据安全治理与隐私计算
优化Feed流遭遇拦路虎,是谁帮百度打破了“内存墙”?
Greenplum数据库故障分析——版本升级后gpstart -a为何返回失败
接口自动化测试框架postman tests常用方法
Utilities 金仓数据库 KingbaseES V8 GIS数据迁移方案(3. 基于ArcGIS平台的数据迁移到KES)
EBS利用虚拟列及hint 提示优化sql案例一则
迁移学习——Distant Domain Transfer Learning