[LeetCode 108] Convert Sorted Array to Binary Search Tree

来源:互联网 发布:人类不会毁于人工智能 编辑:程序博客网 时间:2024/06/11 23:30

题目内容

108 Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
题目来源

题目分析

因为有序,此题不需要将数字插入二叉树时进行平衡二叉树操作。只需每次将数组中间的数字作为根,左右数组分别作为左右子树重复上述操作即可。
注意示例代码中递归方式较为简洁,值得学习。

代码示例

/** * 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 insert_node(nums,0,nums.size()-1);    }    TreeNode* insert_node(vector<int> &nums,int begin,int end)    {        if(begin==end)        return new TreeNode(nums[begin]);        else if(begin>end)        return NULL;        else        {            int mid=(end+begin)/2;            TreeNode* node=new TreeNode(nums[mid]);            node->left=insert_node(nums,begin,mid-1);            node->right=insert_node(nums,mid+1,end);            return node;        }    }};
0 0
原创粉丝点击