标签:node bst asc amp sort arch 构造 调用 pre
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 helper( nums, 0, nums.size() - 1); } TreeNode* helper( vector<int>& nums, int lefts, int rights ) { if ( lefts > rights ) return nullptr; int mid = lefts + ( rights - lefts ) / 2; // 二分法求取中间值 TreeNode* root = new TreeNode(nums[mid]); // 将中间值赋值给根节点 root -> left = helper( nums, lefts, mid -1); // 递归调用,构造左子树 root -> right = helper( nums, mid + 1, rights);// 递归, 构造右子树 return root; } };
Leetcode 108. Convert Sorted Array to Binary Search Tree
标签:node bst asc amp sort arch 构造 调用 pre
原文地址:http://www.cnblogs.com/simplepaul/p/6750254.html