原来一直以为二叉树遍历没有什么难度,直到最近发现没有搞太清晰。所以我用Java来实现了一下,来捋顺思路。
首先创建一个二叉树:
package com.company;
/**
* Created by wuguangzu on 14-10-4.
*/
public class BinaryTree {
int data;//根节点数据
BinaryTree left;//左子树
BinaryTree right;//右子树
//构造函数实例化二叉树
public BinaryTree(int data) {
this.data = data;
left = null;
right = null;
}
//向二叉树中插入节点
public void insert(BinaryTree root, int data){
if(data < root.data){//二叉树的左节点比根节点小
if(root.left == null){
root.left = new BinaryTree(data);//左节点为空,则生成左节点
}else {
this.insert(root.left, data);//递归调用,插入左节点
}
}else {
if(data > root.data){//二叉树的右节点比根节点大
if(root.right == null){
root.right = new BinaryTree(data);//右节点为空,则生成右节点
}else {