leetcode二叉树相关模板

复制代码
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;
    }
}
相关推荐
小O的算法实验室3 分钟前
2024年ESWA SCI1区TOP,异构无人机配送问题的集成多目标优化方法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
草履虫建模10 分钟前
力扣算法 121. 买卖股票的最佳时机
算法·leetcode·职场和发展·贪心算法·动态规划·一次遍历
养军博客11 分钟前
C语言五天速成(可用于蓝桥杯备考 难度中等偏下)
c语言·算法·蓝桥杯
爱尔兰极光14 分钟前
LeetCode--有序数组的平方
算法·leetcode·职场和发展
roman_日积跬步-终至千里15 分钟前
【Java 并发-面试】从线程基础到企业级开发的知识点概况
java·开发语言
jay神16 分钟前
森林火灾检测数据集
算法·机器学习·目标跟踪
m0_7482331719 分钟前
C与C++:底层编程的六大核心共性
java·开发语言
坊钰24 分钟前
【Rabbit MQ】Rabbit MQ 介绍
java·rabbitmq
80530单词突击赢30 分钟前
STLVector底层原理与高效运用
数据结构·算法
雀啼春32 分钟前
Java中的数据类型
java