首页 > 其他 > 详细

【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree

时间:2014-02-03 12:02:09      阅读:384      评论:0      收藏:0      [点我收藏+]

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
思路:
对于树来说,自顶向下的递归是很好控制的,自底向上的递归就很容易让脑神经打结了。本来想仿照排序二叉树的中序遍历,逆向地由数组构造树,后来发现这样做需要先确定树的结构,不然会一直递归下去,不知道左树何时停止。
代码:

bubuko.com,布布扣
TreeNode *addNode(vector<int> &num, int start, int end){
    if(start > end) return NULL;
    
    int mid = (start + end)/2;
    TreeNode *root = new TreeNode(num[mid]);
    root->left = addNode(num, start, mid-1);
    root->right = addNode(num, mid+1, end);
    return root;
}
TreeNode *sortedArrayToBST(vector<int> &num) {
    return addNode(num, 0, num.size()-1);
}
bubuko.com,布布扣

【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree

原文:http://www.cnblogs.com/wei-li/p/ConvertSortedArraytoBinarySearchTree.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!