108. Convert Sorted Array to Bin

2018-11-15  本文已影响0人  花落花开花满天

将数组转化为平衡二叉树,方法是将数组中间的数作为根节点,数组左边为左节点,数组右边为右节点。

注意点:

1.注意中间节点的选择:size=end-start+1;mid=start+(size/2);(网上基本上都是(end-start)/2,个人感觉不合理)。

参考了人家的文章:https://blog.csdn.net/u012814856/article/details/77894863

代码:

TreeNode* trval(vector& nums,intstart,intend)

{

    if(start>end)

        return NULL;

    intsize=end-start+1;

    intmid=start+(size/2);

    TreeNode* root=newTreeNode(nums[mid]);

    if(mid==start)

        root->left=NULL;

    else

        root->left=trval(nums, start, mid-1);

    if(mid==end)

        root->right=NULL;

    else

        root->right=trval(nums, mid+1, end);

    returnroot;

}

TreeNode* sortedArrayToBST(vector& nums)

{

    TreeNode* root=trval(nums,0,nums.size()-1);

    returnroot;

}

上一篇 下一篇

猜你喜欢

热点阅读