剑指Offer之重建二叉树(题6)
2016-05-26 21:30
330 查看
1 /**************************************** 2 > File Name:test.c 3 > Author:xiaoxiaohui 4 > mail:1924224891@qq.com 5 > Created Time:2016年05月20日 星期五 16时11分40秒 6 ****************************************/ 7 8 #include<stdio.h> 9 10 BinaryTreeNode* CreateTree(int* first, int* second, int len) 11 { 12 if(first == NULL || second == NULL || len <= 0 ) 13 { 14 return NULL; 15 } 16 17 int num = first[0]; 18 BinaryTreeNode* node = new BinaryTreeNode(num); //写入根节点的值 19 20 int i = 0; 21 for(;i < len;i++) //在中序数列中找到与根节点值相同的值 22 { 23 if(second[i] == num) 24 { 25 break; 26 } 27 } 28 29 node->m_pLeft = CreateTree(first[1], second[0], i); //递归创建左子树 30 node->m_pRight = CreateTree(second[i + 1], second[i + 1], len - i - 1); //递归创建右子树 31 32 return first[0]; //返回根节点 33 } 34 35 36 37 //总结:当遇到一般的情况与第一种情况相同时,可以考虑递归算法。 38 //当用递归算法时,要先找出一般规律,然后根据这个一般规律进行写代码
相关文章推荐
- Android开发 旋转屏幕导致Activity重建解决方法
- 2015互联网校招总结
- HDU I NEED A OFFER!
- ms sql server 重建或重组数据库索引
- MSSQL2008 还原master数据库
- BlockingQueue中add,offer,put方法区别
- 一招搞定多Offer选择
- 比较幸运的收到了两份offer
- 剑指Offer--003--二维数组中的查找
- 前两年做了个三维重建程序
- 我的阿里巴巴offer之路
- 25岁研究生拿高薪互联网的offer,意气风发的走出学校
- 技术不牛如何才拿到国内IT巨头的Offer
- 2015互联网校招总结—一路走来
- 【算法训练营】二维数组中的查找
- 哈尔滨工程大学-电子通信专场-准员工经验分享会
- 二叉树应用总结(未完待续)
- 拿到offer过后--大学最后时光最想做的那十件事
- BlockingQueue深入分析
- 2015应届生面试经历;