package com.leetcode102;
import java.util.List;
public class Main {
public static void main(String[] args) {
Integer[] arr = {3, 9, 20, null, null, 15, 7};
TreeNode tree = createTree(arr, 0);
printPreOrder(tree);
System.out.println();
printMidOrder(tree);
System.out.println();
printAfterOrder(tree);
System.out.println();
}
/**
* 前序遍历
*/
public static void printPreOrder(TreeNode tree) {
if (tree != null) {
System.out.print(tree.val == null ? "" : tree.val + " ");
printPreOrder(tree.left);
printPreOrder(tree.right);
}
}
/**
* 中序遍历
*/
public static void printMidOrder(TreeNode tree) {
if (tree != null) {
printMidOrder(tree.left);
System.out.print(tree.val == null ? "" : tree.val + " ");
printMidOrder(tree.right);
}
}
/**
* 后序遍历
*/
public static void printAfterOrder(TreeNode tree) {
if (tree != null) {
printAfterOrder(tree.left);
printAfterOrder(tree.right);
System.out.print(tree.val == null ? "" : tree.val + " ");
}
}
/**
* 创建一个二叉树
* ----3
* -9 20
* -----15 17
*/
public static TreeNode createTree(Integer[] arr, int index) {
TreeNode root = null;
if (index < arr.length) {
root = new TreeNode(arr[index]);
root.left = createTree(arr, 2 * index + 1);
root.right = createTree(arr, 2 * index + 2);
}
return root;
}
}
class TreeNode {
Integer val;
TreeNode left;
TreeNode right;
TreeNode() {
}
TreeNode(Integer val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
leetcode二叉树相关模板
Pastthewind2023-10-27 8:43
相关推荐
我登哥MVP2 分钟前
SpringCloud 核心组件解析:分布式配置管理lihao lihao3 分钟前
linux线程满怀冰雪4 分钟前
第13篇-栈算法入门-括号匹配-表达式与单调栈基础TCW11217 分钟前
AI底层系列:用C++实现线性代数的公式推导与算法设计-基础篇-5.矩阵方程我是一颗柠檬8 分钟前
【Java项目技术亮点】Redis Lua脚本原子化操作:高并发场景下的终极武器叫我:松哥9 分钟前
基于机器学习和flask的体育健身风险智能分析系统,系统集成DeepSeek、聚类算法、分类算法等,准确率达90%swg3213219 分钟前
Redis实现主从选举Java 码思客11 分钟前
【ElasticSearch 从入门到架构师】第6章_分词器与文本检索Flittly12 分钟前
【AgentScope Java新手村系列】(6)Hook与Middleware向量引擎12 分钟前
AI API 正在进入“请求生命周期治理”阶段:从模型迁移、Agent 接入到成本与安全排错的工程化方法