convert-sorted-array-to-binary-search-tree
来源:互联网 发布:windows phone微信 编辑:程序博客网 时间:2024/06/05 15:49
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
解法一:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode *sortedArrayToBST(vector<int> &num) { int low=0,high=num.size()-1; TreeNode *root=dfs(low,high,num); return root; } TreeNode* dfs(int low,int high,vector<int> &num) { if(low>high) return NULL; else { int mid=low+(high-low+1)/2;//奇数时,取最中间的值;偶数时,取偏后的那个中间值(因为只有这样才能ac,这是测试用例设计的问题;若是单存的抛开测试用例的话,取靠前的那个中间值也是对的) TreeNode *root=new TreeNode(num[mid]); root->left=dfs(low,mid-1,num); root->right=dfs(mid+1,high,num); return root; } }};
解法二:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode *sortedArrayToBST(vector<int> &num) { int low=0,high=num.size()-1; TreeNode *root=NULL; dfs(root,low,high,num); return root; } void dfs(TreeNode *&root,int low,int high,vector<int> &num) { if(low>high) return; else { int mid=low+(high-low+1)/2;//奇数时,取最中间的值;偶数时,取偏后的那个中间值(因为只有这样才能ac,这是测试用例设计的问题) root=new TreeNode(num[mid]); dfs(root->left,low,mid-1,num); dfs(root->right,mid+1,high,num); } }};
阅读全文
0 0
- 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
- 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
- 无法识别的属性“targetFramework”。请注意属性名称区分大小写。错误解决办法
- arcgis server rest服务查询时间返回大数字如13001263600000怎么办
- 实现开发环境、测试环境、生产环境配置自动切换
- 网络检测的简单方法
- python学习总结---字典
- convert-sorted-array-to-binary-search-tree
- easyui的tree 控件设置checkbox单选设置
- 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
- leetcode 122-Best Time to Buy and Sell Stock II
- 搭建nginx rtmp流媒体服务器(超详细)
- STL应用-——懒省事的小明
- 文章标题
- vscode: Visual Studio Code 常用快捷键
- 实现容器的底层技术