题目:把排序数组转换为高度最小的二叉搜索树
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
感谢您的反馈
样例
给出数组
挑战
可能有多个答案,返回任意一个即可
标签 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;
}
}
您在真实的面试中是否遇到过这个题?
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;
}
}
相关文章推荐
- TINY4412从sd卡启动过程分析
- 堆、堆排序和优先队列
- HDU 5072 Coprime (莫比乌斯反演+容斥+同色三角形)
- 最长子串---fzu2128
- Scala 深入浅出实战经典 第60讲:Scala中隐式参数实战详解以及在Spark中的应用源码解析
- VUa 10976 Fractions Again?! (枚举+暴力水题)
- 题目:找出无向图汇总的相连要素
- 【POJ1797】【Heavy Transportation】【dij变形】
- 几种TCP连接中出现RST的情况
- c++头
- 学会放弃
- 面向对象的思想
- 题目:恢复旋转排序数组
- Mysql5.7新特性
- svn 版本管理 相关
- oracle之光标(游标)介绍
- stack堆栈容器
- SDL显示图像和文字
- mini2440串口模块总结
- Android Studio下Intent隐式启动,发短信,拨号,打电话,访问网页