[leetcode] Convert Sorted Array to Binary Search Tree

来源:互联网 发布:mac怎么清理qq缓存 编辑:程序博客网 时间:2024/05/29 15:25

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) {        int len=num.size();        if(len==0) return NULL;        vector<int> left,right;        left.clear();        right.clear();        int mid=len/2;        for(int i=0;i<mid;i++){            left.push_back(num[i]);        }        for(int i=mid+1;i<len;i++){            right.push_back(num[i]);        }        TreeNode *root=new TreeNode(num[mid]);        root->left=sortedArrayToBST(left);        root->right=sortedArrayToBST(right);        return root;    }};


0 0
原创粉丝点击