leetcode-Convert Sorted Array to Binary Search Tree
来源:互联网 发布:天庭淘宝店 宁小北txt 编辑:程序博客网 时间:2024/06/05 15:30
题目描述:
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
即给定一个升序排列的数组,现在将它转换成一个平衡二叉树。
解题思路;
数组排好序,相当于我们最后生成的平衡二叉树,其根节点为数组中间节点,左子树的根节点为前半部分的中间节点,右子树的根节点为后半部分的中间节点,相当于一个二分查找,找到一部分的中间节点就插入,缩短搜索区域,直到此区域中只有一个节点为止。
方法一:
递归代码如下:
class Solution {public: TreeNode* sortedArrayToBST(vector<int>& nums) { if(nums.size()==0) return NULL; int mid=nums.size()/2; TreeNode* root=(TreeNode*) malloc(sizeof(TreeNode)); root->val=nums[mid]; if(nums.size()==1) { root->left=NULL; root->right=NULL; return root; } vector<int> leftnum(nums.begin(),nums.begin()+mid); vector<int> rightnum(nums.begin()+mid+1,nums.end()); root->left=sortedArrayToBST(leftnum); root->right=sortedArrayToBST(rightnum); return root; }};
方法二;
利用两个数组,只采用一个函数的方法:
class Solution {public: TreeNode* sortedArrayToBST(vector<int>& nums) { if(nums.size()==0) return NULL; int mid=nums.size()/2; TreeNode* root=(TreeNode*) malloc(sizeof(TreeNode)); root->val=nums[mid]; if(nums.size()==1) { root->left=NULL; root->right=NULL; return root; } vector<int> leftnum(nums.begin(),nums.begin()+mid); vector<int> rightnum(nums.begin()+mid+1,nums.end()); root->left=sortedArrayToBST(leftnum); root->right=sortedArrayToBST(rightnum); return root; }};
0 0
- 【LeetCode】Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Search Tree
- 【LeetCode】convert-sorted-link-to-binary-search-tree & convert-sorted-array-to-binary-search-tree
- Leetcode - Tree - Convert Sorted Array to Binary Search Tree
- *(leetcode) Convert Sorted Array to Binary Search Tree (tree)
- LeetCode[Tree]: Convert Sorted Array to Binary Search Tree
- LeetCode: Convert Sorted Array to Binary Search Tree
- [LeetCode]Convert Sorted Array to Binary Search Tree
- LeetCode Convert Sorted Array to Binary Search Tree
- [Leetcode] Convert Sorted Array to Binary Search Tree
- leetcode 11: Convert Sorted Array to Binary Search Tree
- Leetcode: Convert Sorted Array to Binary Search Tree
- [LeetCode] Convert Sorted Array to Binary Search Tree
- Leetcode 108 Convert Sorted Array to Binary Search Tree
- Leetcode 108 Convert Sorted Array to Binary Search Tree
- LeetCode Convert Sorted Array to Binary Search Tree
- [LeetCode]Convert Sorted Array to Binary Search Tree
- [Leetcode]Convert Sorted Array to Binary Search Tree
- [leetcode]Convert Sorted Array to Binary Search Tree
- WebService(4)——WSDL文档解析
- 判断是不是闰年问题
- 关于计算机基础常识
- 对string文件名路径中获取文件名函数方法
- eclipse启动tomcat访问不到主页,可以访问工程
- leetcode-Convert Sorted Array to Binary Search Tree
- JAVA设计模式(16):行为型-策略模式(Strategy)
- CSS3属性笔记(七)
- git从创建到使用的一些简单命令
- linux下rm命令改造成将文件移动至回车站
- WebService(5)——一个webService请求的流程
- adb install命令没反应 只有光标显示
- UVA LA3218 找边界,PSLG
- 数据结构之双循环链表