創建一個二叉樹並遍歷。
public class BinaryTree {
private TreeNode root;
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x){
left = null;
right = null;
val = x;
}
}
public BinaryTree()
{
this.root = null;
}
/**
* 創建二叉樹
*
* */
public void createTree(TreeNode node, int data)
{
if(root == null)
root = new TreeNode(data);
else{
if(data < node.val){
if(node.left == null)
node.left = new TreeNode(data);
else{
createTree(node.left, data);
}
}
else{
if(node.right == null)
node.right = new TreeNode(data);
else{
createTree(node.right, data);
}
}
}
}
/**
* 前序遍歷
*
* *
*/
public void preOrder(TreeNode node){
if(node != null)
{
System.out.println(node.val);
preOrder(node.left);
preOrder(node.right);
}
}
/**
* 中序遍歷
*
* *
*/
public void inOrder(TreeNode node){
if(node != null){
inOrder(node.left);
System.out.println(node.val);
inOrder(node.right);
}
}
/**
* 後序遍歷
*
* *
*/
public void postOrder(TreeNode node){
if(node != null){
postOrder(node.left);
postOrder(node.right);
System.out.println(node.val);
}
}
public boolean isSymmetric(TreeNode root) {
return true;
}
public static void main(String[] args){
int[] a = {2,4,12,45,21,6,111};
BinaryTree bTree = new BinaryTree();
for(int i = 0; i < a.length; i++)
bTree.createTree(bTree.root, a[i]);
bTree.inOrder(bTree.root);
bTree.preOrder(bTree.root);
bTree.postOrder(bTree.root);
}
}