leetcode 11: Convert Sorted Array to Binary Search Tree
来源:互联网 发布:kali linux 查看ip 编辑:程序博客网 时间:2024/04/30 05:48
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) { // Start typing your C/C++ solution below // DO NOT write int main() function if(num.size()<1) return nullptr; TreeNode* root = sortRec(num, 0, num.size()); return root; } private: TreeNode * sortRec(vector<int> &num, int start, int end) { if(start==end) return nullptr; int mid = start + (end-start)/2; TreeNode * root = new TreeNode( num[mid] ); root->left = sortRec(num, start, mid); root->right = sortRec(num, mid+1, end); 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) { // Start typing your C/C++ solution below // DO NOT write int main() function if( num.size() <= 0) return NULL; int size = num.size(); return makeSubtree(num, 0, size-1); } TreeNode * makeSubtree( vector<int> &num, int low , int high) { if(low>high) return NULL; int mid = (low + high) / 2; TreeNode * root = new TreeNode( num[mid]); root->left = makeSubtree( num, low, mid-1); root->right = makeSubtree( num, mid+1, high); return root; }};
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode sortedArrayToBST(int[] num) { // Start typing your Java solution below // DO NOT write main() function if(num.length<1) return null; return convertRec(num, 0, num.length-1); } private TreeNode convertRec(int[] num, int low, int high) { if(low > high) return null; int mid = (low+high)>>>1; TreeNode root = new TreeNode( num[mid]); root.left = convertRec(num, low, mid-1); root.right = convertRec(num, mid+1, high); return root; }}
- leetcode 11: Convert Sorted Array to Binary Search Tree
- 【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: 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
- bochs:资料整理
- 第五篇 窗口管理机制之输入机制
- 进度圈的显示
- 解决cgi程序在firefox中输出html代码的问题
- android4.0 Power、home、menu等按键处理分析
- leetcode 11: Convert Sorted Array to Binary Search Tree
- 排序算法
- Redis 用正则表达式批量del
- C++标准库string类型
- 在Origin中使用OpenCV
- Android Launcher修改--左右滑动屏幕切换源码追踪
- C# 文件相关操作 读 写 追加 删除 获取等
- linux和Windows下安装ruby
- leetcode12: First Missing Positive