(26) 108. 将有序数组转换为二叉搜索树
2020-07-16 04:31
26 查看
题目链接: https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/ 困难度:简单 108. 将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉 搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个 节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表 示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5
不算难 就是理解错了 有序数组转平衡二叉树 我以为主要考察的是二叉树的 平衡二叉树的判断与转换呢
事实上 我只需要每次取中间的值作为根节点就可以了 (递归) 代码也非常简介
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* sortedArrayToBST(vector<int>& nums) { return anser(nums,0,nums.size()-1); } TreeNode* anser(vector<int>& nums,int left,int right){ // 结束条件 if (left>right){ return nullptr; } int mid=(left+right)/2; TreeNode* root = new TreeNode(nums[mid]); root->left=anser(nums,left,mid-1); root->right=anser(nums,mid+1,right); return root; } };
相关文章推荐
- LeetCode 108. 将有序数组转换为二叉搜索树
- Leetcode 108.将有序数组转换为二叉搜索树
- Leetcode 108. 将有序数组转换为二叉搜索树
- LeetCode精选TOP面试题108.将有序数组转换为二叉搜索树
- 108. 将有序数组转换为二叉搜索树
- 【LeetCode】108.将有序数组转换为二叉搜索树 (JAVA)
- LeetCode 108. 将有序数组转换为二叉搜索树
- Leetcode 108. 将有序数组转换为二叉搜索树
- [和小菜鸡一起刷题(python)] LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree)
- LeetCode - 108. 将有序数组转换为二叉搜索树
- 【LeetCode】108. 将有序数组转换为二叉搜索树
- Leetcode108. 将有序数组转换为二叉搜索树(python3)
- 将有序数组转换为二叉搜索树
- leetcode- 将有序数组转换为二叉搜索树(java)
- leetcode-将有序数组转换为二叉搜索树(JavaScript)
- leetode108_将有序数组转换为二叉搜索树
- 108将有序数组转换为二叉搜索树
- 【简单算法】30.将有序数组转换为二叉搜索树
- 有序数组、链表转换二叉搜索树
- [108]___将有序数组转换为二叉搜索树