首页 > 编程语言 >Java根据Integer数组(有null值)递归构造二叉树

Java根据Integer数组(有null值)递归构造二叉树

时间:2023-04-30 11:12:10浏览次数:37  
标签:index arr right TreeNode val Java 二叉树 Integer null

二叉树:

public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode() {
    }

    TreeNode(int val) {
        this.val = val;
    }

    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}

递归构造二叉树:

public static TreeNode creatTreeNode(Integer[] arr, int index) {
    if (index >= arr.length) {
        return null;
    }

    if (arr[index] == null) {
        return null;
    }
    TreeNode root = new TreeNode(arr[index]);

    root.left = creatTreeNode(arr, ++index);
    root.right = creatTreeNode(arr, ++index);

    return root;
}

标签:index,arr,right,TreeNode,val,Java,二叉树,Integer,null
From: https://www.cnblogs.com/linxuannihao/p/17365040.html

相关文章

  • java-正则表达式判断手机号
    要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段,故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188联通:130、131、132、152、155、156、185、186......
  • Java二维数组
    二维数组二维数组的应用场景:但我们需要把数据分组管理的时候,就需要用到二维数组二维数组初始化:1、静态初始化:格式:数据类型[][]数组名=new数据类型[][]{{元素1,元素2},{元素1,元素2}};eg:int[][]arr=newint[][]{{11,22},{33,44}}简化格式:数据类型[][]数组名={{元素1......
  • java io流 高级流
    转换流是字符流和字节流之间的桥梁转换输入流InputSteamReader转换输出流OutputStreamWriter作用1:指定字符集读写(JDK11之后淘汰)JDK11之后可直接用字节流的构造方法//指定GBK的编码读取数据FileReaderfr=newFileReader(FilefileName,Charset.forName("GBK......
  • javaScript基础之 --- 作用域和闭包
    本文是我学习《你所不知道的javaScript上卷》的读书笔记的整理。更多详细内容,请微信搜索“前端爱好者“,戳我查看。作用域和闭包作用域是什么javaScript工作原理中的角色引擎-从头到尾负责整个javascript程序的编译及执行过程编译器-负责语法分析及代码生成......
  • 【模板方法设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介模板方法模式(TemplateMethodPattern)也叫模板模式,是一种行为型模式。它定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构,只是重定义该算法的某些特定步骤。不同的子类以不同的方式实现这些抽象方法,从而对剩余的逻辑有......
  • Java Lambda Stream
    javalist中的字符是否包括在另一个list中,::方法使用::方法使用条件:lambada表达式的主体仅包含一个表达式,且lambada表达式只调用一个已经存在的方法;被引用的方法的参数列表与lambada表达式的输入输出一致以下是Java8中方法引用的一些语法:静态方法引用(s......
  • Java学习2——第四-六次题目集的分析与总结
     一.前言 本次Blog是对java学习中第二阶段练习的一个总结,作为刚学习JAVA的小白,以下依旧只是本人作为普通学生,以当前能力和状态所做出的总结和分析,不足之处也欢迎各位大佬的指正! 这次的三个题目集,题量除了题目集六很少外,其它都是正常数量,当然题目集六的题也是最难的。总体难......
  • JavaWeb回顾与小结(五)
    Mybatis基础操作环境准备工作准备数据库表创建一个新的springboot工程,选择引入对应的起步依赖(mybatis,mysql驱动,lombok)application.properties中引入数据库连接信息创建对应的实体类Emp(实体类属性采用驼峰命名)准备Mapper接口EmpMapper根据主键删除SQL语句delete......
  • JavaWeb回顾与小结(四)
    数据库操作-DQLDQL英文全称是DataQueryLanguage(数据查询语言),用来查询数据库表中的记录基本查询条件查询where分组查询groupby排序查询orderby分页查询limit基本查询语法查询多个字段select字段1,字段2,字段3from表名;查询所有字段(通配符)select*from......
  • Java中定时任务的6种实现方式,你知道几种?
    几乎在所有的项目中,定时任务的使用都是不可或缺的,如果使用不当甚至会造成资损。还记得多年前在做金融系统时,出款业务是通过定时任务对外打款,当时由于银行接口处理能力有限,外加定时任务使用不当,导致发出大量重复出款请求。还好在后面环节将交易卡在了系统内部,未发生资损。所以,系统......