您的位置:首页 > 其它

题目:把排序数组转换为高度最小的二叉搜索树

2015-08-19 19:22 253 查看
给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。

您在真实的面试中是否遇到过这个题?

Yes

哪家公司问你的这个题?
Airbnb
Alibaba
Amazon Apple
Baidu Bloomberg
Cisco Dropbox
Ebay Facebook
Google Hulu
Intel Linkedin
Microsoft NetEase
Nvidia Oracle
Pinterest Snapchat
Tencent Twitter
Uber Xiaomi
Yahoo Yelp
Zenefits
感谢您的反馈

样例

给出数组
[1,2,3,4,5,6,7]
, 返回

4
/   \
2     6
/ \    / \
1   3  5   7


挑战

可能有多个答案,返回任意一个即可

标签 Expand

Cracking The Coding Interview

递归
二叉树

相关题目 Expand

/**

* 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) return null;

TreeNode node = null;

node = CreateNode(node, A, 0, A.length-1);

return node;

}

public TreeNode CreateNode(TreeNode node, int[] A, int s, int e) {

if (s <= e) {

int mid = (s + e) / 2;

node = new TreeNode(A[mid]);

node.left = CreateNode(node, A, s, mid-1);

node.right = CreateNode(node, A, mid+1, e);

return node;

}

return null;

}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: