LeetCode 108 Convert Sorted Array to Binary Search Tree

題目:

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

題目鏈接

題意:

給一個排好序的數組,要求把數組轉化爲一個深度平均的搜索二叉樹。

對於二叉樹,父節點一定 大於左子節點,小於右子節點,所以對應數組而言,父節點應爲中間值,比它小的數放在左邊,大的數放在右邊,依次遞歸下去。

代碼如下:

public:
    TreeNode * newBST(vector<int>nums, int l, int r) {
        if (l > r) return NULL;
        int mid = (l + r) / 2;
        TreeNode * node = new TreeNode(nums[mid]);
        node->left = newBST(nums, l, mid-1);
        node->right = newBST(nums, mid+1, r);
        return node;
    }
    
    TreeNode* sortedArrayToBST(vector<int>& nums) {
        return newBST(nums, 0, nums.size()-1);    
    }
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章