Java implements a simple binary tree

package com.xtm.tree;

import java.util.LinkedList;

public class Main {

	/**
	 * Tree:
	 *           1
	 *       2       3
	 *     4   5   6   7
	 *   8   9
	 *
	 */
	public static void main(String[] args) {
		//build tree
		int[] array = {1,2,3,4,5,6,7,8,9};
		int len = array.length;
		LinkedList<TreeNode> linkedList = new LinkedList<TreeNode>();
		for(int i=0;i<len;i++){
			linkedList.add(new TreeNode(array[i]));
		}
		
		for(int i=0;i<len/2-1;i++){
			linkedList.get(i).left=linkedList.get(i*2+1);
			linkedList.get(i).right=linkedList.get(i*2+2);
		}
		
		int lastIndex = len/2-1;
		linkedList.get(lastIndex).left=linkedList
				.get(lastIndex*2+1);
		if(len%2==1){
			linkedList.get(lastIndex).right=linkedList
					.get(lastIndex*2+2);
		}
				
		//traverse the tree
		printTreeNode(linkedList.get(0));

	}



	private static void printTreeNode(TreeNode root) {
		if(root == null){
			return ;
		}
		//System.out.print(root.value+"\t");//Pre-order traversal: first parent, then left child, right child output: 1 2 4 8 9 5 3 6 7
		printTreeNode(root.left);
		//System.out.print(root.value+"\t");//Inorder traversal: first left child, then parent and then right child Output: 8 4 9 2 5 1 6 3 7
		printTreeNode(root.right);
		System.out.print(root.value+"\t");//Post-order traversal, first left and right child and then parent output: 8 9 4 5 2 6 7 3 1
		
	}

}

class TreeNode{
	TreeNode left ;
	TreeNode right ;
	int value ;
	public TreeNode() {
	}
	public TreeNode(int value) {
		this.value = value;
	}
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325894663&siteId=291194637