首页 > 代码库 > Leetcode-Convert Sorted Array to BST
Leetcode-Convert Sorted Array to BST
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
Solution:
1 /** 2 * Definition for binary tree 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */10 public class Solution {11 public TreeNode sortedArrayToBST(int[] num) {12 if (num.length==0)13 return null;14 15 int end = num.length-1;16 TreeNode root = sortedArrayToBSTRecur(num,0,end);17 return root;18 }19 20 public TreeNode sortedArrayToBSTRecur(int[] num, int head, int end){21 if (head==end){22 TreeNode root = new TreeNode(num[head]);23 return root;24 }25 26 if (head+1==end){27 TreeNode root = new TreeNode(num[end]);28 TreeNode child = new TreeNode(num[head]);29 root.left = child;30 return root;31 }32 33 //Calculate the median index.34 int len = end-head;35 int mid = head + len/2 + len%2;36 TreeNode root = new TreeNode(num[mid]);37 TreeNode leftChild = sortedArrayToBSTRecur(num,head,mid-1);38 TreeNode rightChild = sortedArrayToBSTRecur(num,mid+1,end);39 root.left = leftChild;40 root.right = rightChild;41 return root;42 }43 }
Leetcode-Convert Sorted Array to BST
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。