instagram

Algorithm to create a binary tree with minimal height

Write a algorithm to create binary tree with min height.

Algorithm

import java.util.Arrays;

import com.omt.learn.algo.util.tree.TreeNode;

public class BinaryTreeWithMinHeight {

	public static void main(String[] args) {

		int a[] = { 1, 2, 3, 4, 5, 6, 7 };

		Arrays.sort(a);

		TreeNode tn = createTreeWithMinHeight(a, 0, a.length - 1);

	}

	public static TreeNode createTreeWithMinHeight(int a[], int start, int end) {

		if (start > end) {
			return null;
		}

		int middle = (start + end) / 2;

		TreeNode tn = new TreeNode(createTreeWithMinHeight(a, start, middle - 1),
				createTreeWithMinHeight(a, middle + 1, end), String.valueOf(a[middle]));

		return tn;
	}

}

ThreeNode.java

public class TreeNode {

	public String nodeName = "";
	public boolean isVisited = false;
	public int value = 0;
	public TreeNode leftNode = null;
	public TreeNode rightNode = null;

	public TreeNode() {
		// TODO Auto-generated constructor stub
	}

	public TreeNode(String name) {
		nodeName = name;
	}

	public TreeNode(TreeNode left, TreeNode right, String name) {
		leftNode = left;
		rightNode = right;
		nodeName = name;
	}
}
Share