标签:
Given a sorted (increasing order) array, Convert it to create a binary tree with minimal height.
Given [1,2,3,4,5,6,7]
, return
4
/ 2 6
/ \ / 1 3 5 7
There may exist multiple valid solutions, return any of them.
思路比较直接,中间的数作为root,前一半作为左子树,后一半作为右子树
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param A: an integer array * @return: a tree node */ public TreeNode sortedArrayToBST(int[] A) { // write your code here if(A == null || A.length == 0) return null; TreeNode root = getTree(A, 0, A.length - 1); return root; } public TreeNode getTree(int[] A, int start, int end){ if(start > end) return null; int mid = start + (end - start) / 2; TreeNode root = new TreeNode(A[mid]); TreeNode left = getTree(A, start, mid - 1); TreeNode right = getTree(A, mid + 1, end); root.left = left; root.right = right; return root; } }
lintcode-easy-Convert Sorted Array to Binary Search Tree with Minimal Height
标签:
原文地址:http://www.cnblogs.com/goblinengineer/p/5212610.html