【二叉查找树】04根据升序数组构造二叉查找树【Convert Sorted Array to Binary Search Tree】
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
给定一个升序的数组,把他转换成一个高度平衡的二叉查找树
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
递归的方法:
test.cpp:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
#include <iostream>
#include <cstdio> #include <stack> #include <vector> #include "BinaryTree.h" using namespace std; /** if(begin > end) TreeNode *sortedArrayToBST(vector<int> &num) vector<vector<int> > levelOrder(TreeNode *root) vector<vector<int> > matrix; vector<TreeNode *> path; int count = 1; if(count == 0) // 树中结点含有分叉, TreeNode *root = sortedArrayToBST(num); vector<vector<int> > ans = levelOrder(root); for (int i = 0; i < ans.size(); ++i) |
结果输出:
4 2 6 1 3 5 7
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#ifndef _BINARY_TREE_H_
#define _BINARY_TREE_H_ struct TreeNode TreeNode *CreateBinaryTreeNode(int value); #endif /*_BINARY_TREE_H_*/ |
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
#include <iostream>
#include <cstdio> #include "BinaryTree.h" using namespace std; /** //创建结点 return pNode; //连接结点 //打印节点内容以及左右子结点内容 if(pNode->left != NULL) if(pNode->right != NULL) printf("\n"); //前序遍历递归方法打印结点内容 if(pRoot != NULL) if(pRoot->right != NULL) void DestroyTree(TreeNode *pRoot) delete pRoot; DestroyTree(pLeft); |
最新文章
- Macaca-iOS入门那些事
- plain framework 1 参考手册 入门指引之 许可协议
- windows一些快捷键
- ios app 支持 ipv6-only
- windows在远程桌面连接中使用命令行参数
- 【转】android adb命令
- css+div布局案例
- 通过设置cookie实现单点登录
- 07.31 zepto
- 大容量XFS异常处理
- MyBatis 基本数据类型条件判断问题
- S3C2440启动代码2440init.s彻底解析
- 应用控制台应用程序开发批量导入EXEL程序。
- Java之戳中痛点 - (7)善用Java整型缓存池
- LAMP一键安装
- synchronized和lock有什么区别?
- 为 docker 中的 nginx 配置 https
- 四、Attribute
- html5入门:教你用canvas写一个时钟
- js字符串替换