Leetcode_convert-sorted-array-to-binary-search-tree
来源:互联网 发布:ce怎么修改游戏数据 编辑:程序博客网 时间:2024/05/22 14:19
地址:http://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
思路:先找到头节点,再递归构造左子树和右子树。124ms。
参考代码:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: void construct_tree(TreeNode**p, vector<int>vec) { if(vec.empty()) return; int mid = vec.size()/2; *p = new TreeNode(vec[mid]); vector<int>left_vec, right_vec; for(int i = 0; i<mid; ++i) left_vec.push_back(vec[i]); for(int i=mid+1; i<vec.size(); ++i) right_vec.push_back(vec[i]); construct_tree(&((*p)->left), left_vec); construct_tree(&((*p)->right), right_vec); } TreeNode *sortedArrayToBST(vector<int> &num) { if(num.empty()) return NULL; TreeNode* head = NULL; construct_tree(&head, num); return head; }};
SECOND TRIAL, 60MS
class Solution {private: TreeNode* construct_tree(TreeNode* root, vector<int>& num, int begin, int end) { if(begin > end) return NULL; int mid = (begin+end)/2; root = new TreeNode(num[mid]); root->left = construct_tree(root->left, num, begin, mid-1); root->right = construct_tree(root->right, num, mid+1, end); return root; }public: TreeNode *sortedArrayToBST(vector<int> &num) { return construct_tree(NULL, num, 0, num.size()-1); }};
0 0
- 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-list-to-binary-search-tree
- LeetCode_Convert Sorted List 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
- SleepWalking
- 微信天气环境质量
- TCP概念
- 一般背包问题
- JQuery validate
- Leetcode_convert-sorted-array-to-binary-search-tree
- IOS ASIFormDataRequest使用简介
- Android:提交页面多个字段验证 从if 到try -catch的转变
- UITableView之cell复用
- Android与服务器端数据交互(http协议整合struts2+android)
- 横向、纵向充满屏幕(4个按钮正好各占1/4屏幕面积(居中))——田字格
- 【华为机试题】请在123456789之间添加+号或者-号,也可以什么都不填,使得等式的运算结果等于a。要求程序输出等式成立的个数b。测试用例:a=5时,b=21。
- C# 图片和二进制之间的转换
- passwd和shadow格式