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;
    }
}
相关推荐
程序猿小蒜几秒前
基于springboot的的学生干部管理系统开发与设计
java·前端·spring boot·后端·spring
wyhwust23 分钟前
交换排序法&冒泡排序法& 选择排序法&插入排序的算法步骤
数据结构·算法·排序算法
利刃大大26 分钟前
【动态规划:背包问题】完全平方数
c++·算法·动态规划·背包问题·完全背包
q***563827 分钟前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
q***518933 分钟前
SpringCloud系列教程:微服务的未来(十四)网关登录校验、自定义过滤器GlobalFilter、GatawayFilter
java·spring cloud·微服务
go__Ahead1 小时前
【Java】线程池源码解析
java·juc
wyhwust1 小时前
数组----插入一个数到有序数列中
java·数据结构·算法
im_AMBER1 小时前
Leetcode 59 二分搜索
数据结构·笔记·学习·算法·leetcode
专注于大数据技术栈1 小时前
java学习--final
java·开发语言·学习
gihigo19981 小时前
基于MATLAB的IEEE 14节点系统牛顿-拉夫逊潮流算法实现
开发语言·算法·matlab