convert-sorted-array-to-binary-search-tree

来源:互联网 发布:软件设计师考试经验 编辑:程序博客网 时间:2024/06/07 00:01
packagecom.ytx.array;
/**
 * convert-sorted-array-to-binary-search-tree
 *
 * Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
 *
 *@authoryuantian xin
 *  把一个升序的有序数组转换成高度平衡的二叉搜索树
 * 
 *  平衡的二叉搜索树,即每棵子树的根节点都是二分查找的中间节点,
 *  使用二分法的递归得到每个中间节点即可。
 */
classTreeNode {
       
       intdata;
       
       TreeNodeleft;
       
       TreeNoderight;
       
       publicTreeNode(intdata) {
             this.data= data;
       }
       
}
publicclassConvert_sorted_array_to_binary_search_tree {
       
       publicTreeNode buildBinarySearchTree(int[]num , intstart,intend) {
             
             if(start > end)returnnull;
             
             intmid = (start + end + 1) / 2;
             
             TreeNode root = newTreeNode(num[mid]);
             
             root.left= buildBinarySearchTree(num,start,mid - 1);
             
             root.right= buildBinarySearchTree(num,mid + 1, end);
             
             returnroot;
             
       }
       
       public  TreeNode sortedArrayToBST(int[]num) {
             
             intlen = num.length;
             
       if(num== null || len <= 0 ) return null;
       
       return  buildBinarySearchTree(num, 0,len-1);
    }
}
原创粉丝点击