您的位置:首页 > 其它

leetcode Convert Sorted Array to Binary Search Tree 树

2015-07-05 22:58 555 查看
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*createTree(vector<int>&nums, int left, int right)
	{
		if (left > right) return NULL;
		int mid = (left + right) / 2;
		TreeNode *leftnode = createTree(nums, left, mid - 1);
		TreeNode *rightnode = createTree(nums, mid+1,right);
		TreeNode *node = new TreeNode(TreeNode(nums[mid]));
		node->left = leftnode;
		node->right = rightnode;
		return node;
	}
	TreeNode* sortedArrayToBST(vector<int>& nums) {
		return createTree(nums, 0, nums.size() - 1);
	}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: