crack the code interview 4.3
来源:互联网 发布:谷嫂淘宝同款排除王 编辑:程序博客网 时间:2024/04/27 03:59
Given a sorted (increasing order) array, write an algorithm to create a binary tree with minimal height.
#include <iostream>
using namespace std;
struct TreeNode
{
int value;
TreeNode * left;
TreeNode * right;
TreeNode(int v)
{
value = v;
left = NULL;
right = NULL;
}
};
void createTree(int * array, int length);
void createMinTree(int * array, TreeNode * node, int l, int r);
TreeNode * createNode(int * array, int l, int r);
void createTree(int * array, int length)
{
int middle = (length - 1) / 2;
TreeNode * root = new TreeNode(array[middle]);
createMinTree(array, root, 0, length - 1);
}
//
void createMinTree(int * array, TreeNode * node, int l, int r)
{
if (r - l <= 0)
{
return;
}
int middle = (r - l) / 2 + l;
cout<<array[middle]<<endl;
if (middle != l)
node->left = createNode(array, l, middle - 1);
node->right = createNode(array, middle + 1, r);
createMinTree(array, node->left, l , middle - 1);
createMinTree(array, node->right, middle + 1, r);
}
TreeNode * createNode(int * array, int l, int r)
{
if (l > r)
return NULL;
int middle = (r - l) / 2 + l;
TreeNode * node = new TreeNode(array[middle]);
return node;
}
int main()
{
int array[5] = {0, 1, 2, 3, 4};
createTree(array, 5);
return 0;
}
- crack the code interview 4.3
- crack the code interview 1.2
- crack the code interview 1.4
- crack the code interview 1.5
- crack the code interview 1.6
- crack the code interview 1.7
- crack the code interview 1.8
- crack the code interview 2.1
- crack the code interview 2.2
- crack the code interview 2.3
- crack the code interview 2.4
- crack the code interview 2.5
- crack the code interview 3.1
- crack the code interview 3.2
- crack the code interview 3.3
- crack the code interview 3.4
- crack the code interview 3.5
- crack the code interview 3.6
- xenserver创建本地iso库
- 贝叶斯网络应用实例一:胸部疾病诊所
- Cocos2D 2.1: 塔防游戏
- POJ1611The Suspects并查集
- crack the code interview 4.2
- crack the code interview 4.3
- c#的扩展方法
- OpenGL版本与OpenGL扩展机制 (转载)
- crack the code interview 4.4
- 18. 微软面试题:输入一个表示整数的字符串,把该字符串转换成整数并输出
- Centos6.3下安装配置Trac和Subversion(SVN)全过程!(一)
- 【matlab编程】matlab随机数函数
- 瀑布流布局的三种实现方式
- hdu_1520_树形dp