高度最小的BST&&108. Convert Sorted Array to Binary Search Tree
来源:互联网 发布:被广电禁播的网络剧 编辑:程序博客网 时间:2024/06/08 00:28
题目描述
对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。
给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。
解答
要创建一棵高度最小的树,就必须让左右子树的结点数量越接近越好。也就是说,我们要让数组中间的值成为根节点,这样数组左边一半成为左子树,右边一半成为右子树。
然后我们以类似的方式构造整棵树。数组每一区段的中间元素成为子树的根节点,左半部分成为左子树,右半部份成为右子树。
该算法简述如下
1. 将数组中间位置的元素插入树中
2. 将数组左半边元素插入左子树
3. 将数组右半边元素插入右子树
4. 递归处理
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* sortedArrayToBST(vector<int>& nums) { return sortedArrayToBST(nums,0,nums.size()-1); } TreeNode* sortedArrayToBST(vector<int>& nums,int l,int u) { if(l > u) return NULL; int mid = l+ (u-l)/2; TreeNode *root = new TreeNode(nums[mid]); root->left = sortedArrayToBST(nums,l,mid-1); root->right =sortedArrayToBST(nums,mid+1,u); return root; }};
0 0
- 高度最小的BST&&108. Convert Sorted Array to Binary Search Tree
- [leetcode]Convert Sorted Array to Balanced Binary Search Tree (BST)
- 【Leetcode】Convert Sorted Array to Binary Search Tree (BST)
- Leetcode 108. Convert Sorted Array to Binary Search Tree 有序数组转化BST 解题报告
- 108. Convert Sorted Array to Binary Search Tree(和把一个单链表转换成BST树的思想一致)
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- 关于51单片机+ESP8266
- 工控系统蜜罐建设与协议仿真技术分享
- Makefile选项CFLAGS,LDFLAGS,LIBS
- 【脑图制作】 实现业务流程图设计 并保存流程图
- 将war包部署到android服务器上
- 高度最小的BST&&108. Convert Sorted Array to Binary Search Tree
- postgres 备库遇到 FATAL: the database system is starting up问题
- Activity的启动流程
- 做市场的人,不一定知道什么才是“市场”
- curl
- 使用 Apache CXF 实现 Web Service 详解
- 非ARC模式下内存管理总结
- 用户管理系统——多条件搜索
- mysql 导入数据 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法