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
相关推荐
evans在进步12 分钟前
LeetCode 198:打家劫舍——Java 动态规划详解2601_9638702229 分钟前
【计算机毕业设计】基于Spring Boot的考研信息交流平台的设计与实现大模型丫丫1 小时前
Spring Boot 入门指南:从零开始构建你的第一个应用逆境不可逃1 小时前
LeetCode 双题:415. 字符串相加与 143. 重排链表拾光Ծ1 小时前
Linux五种I/O模型与fcntl非阻塞控制半旧5181 小时前
【Java Web02】WEB服务器内部实现技术揭秘gis开发之家1 小时前
日志怎么打才专业?Spring Boot 4 日志体系与 Logback 配置(生产级实战)2601_950760791 小时前
TNF-α:自身免疫疾病治疗的核心靶点与信号通路解析SaaS发言人1 小时前
渠道数字化解决方案横评:谁更懂快消JL151 小时前
Java并发编程面试全攻略-从synchronized到AQS底层原理