您的位置:首页 > 编程语言

leetcode-Convert Sorted Array to Binary Search Tree(2014.4.20)

2014-04-20 21:08 375 查看

Convert Sorted Array to Binary Search Tree

 Total Accepted: 10637 Total Submissions: 33426My
Submissions

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 *BuildbBST(int left,int right,vector<int> array){
       if(left>right) return NULL;
       int mid = (left+right)/2;
       TreeNode *root = new TreeNode(array[mid]);
       if(left<right) root->left=BuildbBST(left,mid-1,array);
       if(mid<right) root->right=BuildbBST(mid+1,right,array);
       return root;
    }
    TreeNode *sortedArrayToBST(vector<int> &num) {
        int n=num.size();
     if(n==0) return NULL;
     return BuildbBST(0,n-1,num);
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 编程