39.1: Convert Sorted Array to Binary Search Tree

/************************************************************************/
            /*       39.1:  Convert Sorted Array to Binary Search Tree                               */
            /************************************************************************/
            /*
             * Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
             *
             * */

 public TreeNode sortedArrayToBST(int[] num) 
            {
                if(num==null|| num.length<1)
                {
                    return null;
                }
                return buildhelper(0,num.length-1,num);
            }
            
            private TreeNode buildhelper(int start,int end,int[] num)
            {
                
                if(start>end)
                {
                    return null;
                }
                int rootindex=start+(end-start)/2;
                TreeNode root=new TreeNode(num[rootindex]);
                root.left=buildhelper(start,rootindex-1,num);
                root.right=buildhelper(rootindex+1,end,num);
                return root;
            }
            

 

posted @ 2015-01-27 22:07  Star Yoda  阅读(104)  评论(0编辑  收藏  举报