LeetCode题解:Convert Sorted Array to Binary Search Tree
2013-11-10 05:26
441 查看
Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.思路:
给定一个区间[left, right],取其中值mid=(left+right)/2对应的元素作为二叉树的根。二叉树的左子树根的值为对[left, mid-1]继续操作的结果,右子树类似。
题解:
/** * 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* generateBST(int left, int right, vector<int>& num) { if (left > right) return nullptr; else if (left == right) return new TreeNode(num[left]); else { int mid = (left + right) / 2; TreeNode* node = new TreeNode(num[mid]); node->left = generateBST(left, mid - 1, num); node->right = generateBST(mid + 1, right, num); return node; } } TreeNode *sortedArrayToBST(vector<int> &num) { return generateBST(0, num.size() - 1, num); } };
相关文章推荐
- Windows与linux双系统安装
- lib包含# #pragma comment
- LeetCode题解:Binary Tree Postorder Traversal
- Longest Consecutive Sequence 从无序数组中找最长的连续数字 @LeetCode
- socket相关知识
- 安卓升级提示 phoneGap APK软件更新提示
- python调用dll
- Remove Duplicates from Sorted List II 链表移除重复值@LeetCode
- cocos2d-x-2.2/samples/Cpp/SimpleGame/ 问题
- 搭建Titanium开发环境
- c++ 运算符的重载
- VMware Appliance的默认用户名和密码
- python常用
- 1110
- Excel poi导出
- C++ tips .
- redis的sort排序
- ThinkPHP调用存储过程不能返回结果集的解决方案
- Java之BerkeleyDB(一)
- 黑马程序员---函数与数组总结