Java创建二叉树
版权声明:本文为博主原创文章,未经博主同意不得转载。
https://blog.csdn.net/yeweiouyang/article/details/37814461
二叉树的值保存在数组中,以0作为分隔,数字0表示空节点,数组
public static final int[] TREE_VALUE = new int[]{1,2,3,0,4,5,0,0,6,0,0,7,0,0,8,0,9,10,0,0,0};表示的二叉树是:
/**
 * 维护构建二叉树的值和值索引
 */
public static class TreeValue {
	public static int index = 0;
	public static final int[] TREE_VALUE = new int[]{1,2,3,0,4,5,0,0,6,0,0,7,0,0,8,0,9,10,0,0,0};
}
/**
 * Create A Binary Tree with TreeValue
 *
 * @node: a tree node
 * @i: the index of tree value
 */
public static TreeNode createTree(TreeNode node, int i) {
	if (0 == TreeValue.TREE_VALUE[i]) {
		return null;
	} else {
		node.setVal(TreeValue.TREE_VALUE[i]);
	}
	TreeNode leftChild = new TreeNode();
	node.left = createTree(leftChild, ++TreeValue.index);
	TreeNode rightChild = new TreeNode();
	node.right = createTree(rightChild, ++TreeValue.index);
	return node;
}
/**
 * Definition for binary tree
 */
public static class TreeNode {
	int val;
	TreeNode left;
	TreeNode right;
	TreeNode() {
		left = null;
		right = null;
	}
	TreeNode(int val) {
		this.val = val;
		left = null;
		right = null;
	}
	public void setVal(int val) {
		this.val = val;
	}
}
public static void main(String[] args) {
	TreeNode root = new TreeNode();
	root = createTree(root, index);
}Java创建二叉树的更多相关文章
- java创建二叉树并实现非递归中序遍历二叉树
		java创建二叉树并递归遍历二叉树前面已有讲解:http://www.cnblogs.com/lixiaolun/p/4658659.html. 在此基础上添加了非递归中序遍历二叉树: 二叉树类的代码 ... 
- Java创建二叉树、二叉树的遍历
		创建二叉树: public class Node { // 左子节点 public Node leftNode; // 右子节点 public Node rightNo ... 
- java创建二叉树并递归遍历二叉树
		二叉树类代码: package binarytree; import linkqueue.LinkQueue; public class BinaryTree { class Node { publi ... 
- Java实现二叉树的创建和遍历操作(有更新)
		博主强烈建议跳过分割线前面的部分,直接看下文更新的那些即可. 最近在学习二叉树的相关知识,一开始真的是毫无头绪.本来学的是C++二叉树,但苦于编译器老是出故障,于是就转用Java来实现二叉树的操作.但 ... 
- Java实现二叉树的创建、递归/非递归遍历
		近期复习数据结构中的二叉树的相关问题,在这里整理一下 这里包含: 1.二叉树的先序创建 2.二叉树的递归先序遍历 3.二叉树的非递归先序遍历 4.二叉树的递归中序遍历 5.二叉树的非递归中序遍历 6. ... 
- Java创建二叉搜索树,实现搜索,插入,删除操作
		Java实现的二叉搜索树,并实现对该树的搜索,插入,删除操作(合并删除,复制删除) 首先我们要有一个编码的思路,大致如下: 1.查找:根据二叉搜索树的数据特点,我们可以根据节点的值得比较来实现查找,查 ... 
- Java实现二叉树地遍历、求深度和叶子结点的个数
		一.分析 二叉树是n个结点所构成的集合,它或为空树,或为非空树.对于非空树,它有且仅有一个根结点,且除根结点以外的其余结点分为两个互不相交的子集,分别称为左子树和右子树,它们本身又都是二叉树. 显而易 ... 
- 数据结构(5):Java实现二叉树
		二叉树图: package com.test.Sort; import java.util.ArrayList; import java.util.LinkedList; public class B ... 
- java实现二叉树的Node节点定义手撕8种遍历(一遍过)
		java实现二叉树的Node节点定义手撕8种遍历(一遍过) 用java的思想和程序从最基本的怎么将一个int型的数组变成Node树状结构说起,再到递归前序遍历,递归中序遍历,递归后序遍历,非递归前序遍 ... 
随机推荐
- UVa 213 信息解码  (模拟 && 二进制)
			题意 :对于下面这个字符串 0,00,01,10,000,001,010,011……. 首先是长度为1的串,然后是长度为2的串,以此类推.不存在全为1的串. 你的任务是编写一个程序.首先输入一个代码头 ... 
- 利用word宏功能一键导出数据库表结构
			前言: 需求是: 为了完成<数据库设计文档>中的表结构展示,需要导出所有的表结构,包括字段名.长度.注释等必要标题. 数据库:MySQL 我选择的方法是——用word的宏功能导出.很多博客 ... 
- Spring Cloud架构教程 (三)服务网关(基础)
			通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了.比如下图所示: alt 我们使用Spring Cloud Netflix中的Eureka实 ... 
- HDU 2147--HDU 2147(博弈)--我可能做了假题。。。
			kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/1000 K (Java/Others) Total Su ... 
- jdbcType="DATE"和jdbcType=" TIMESTAMP"的区别
			原文: https://www.cnblogs.com/fswhq/p/jdbcType.html 当传入null值时,jdbcType 会防止null空指针异常报错 Mybatis 中jdbcTyp ... 
- 无法加载模块  TP3.2
			报错 3.2的路由功能是针对模块设置的,所以URL中的模块名不能被路由,路由定义也通常是放在模块配置文件中. 'MODULE_DENY_LIST' => array('Common','User ... 
- webrtc相关概念
			SDP Session Description Protocol Session Traversal Utilities for NAT(STUN)Traversal Using Relays aro ... 
- Linux_LVM、RAID_RHEL7
			目录 目录 LVM逻辑卷管理 把物理分区初始化为物理卷 创建卷组 建立逻辑卷 格式化 挂载 vg拓展操作 lv扩展操作 RAID RAID 类型 RAID0条带化 RAID1镜像 RAID5条带冗余 ... 
- Python学习之==>日志模块
			一.logging模块介绍 logging是Python中自带的标准模块,是Python中用来操作日志的模块. 1.控制台输出日志 import logging logging.basicConfig ... 
- python2.7安装numpy、pandas、matplotlib库
			我装的是python2.7 然后pip的版本是18.1,最近使用pip install **安装包的时候总是会提示 You are using pip version 18.1, however ve ... 
