LeeCode 108 递归

    技术2024-04-06  88

    题意

    传送门 LeeCode 108

    题解

    左右两个子树的高度差的绝对值不超过 1 1 1,则将有序数组索引最靠近中间位置的元素当做根节点的值,递归处理左右子树。

    /** * 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 *build(int l, int r, vector<int> &nums) { if (l >= r) return nullptr; int m = (l + r) >> 1; TreeNode *root = new TreeNode(nums[m]); root->left = build(l, m, nums); root->right = build(m + 1, r, nums); return root; } TreeNode *sortedArrayToBST(vector<int> &nums) { return build(0, nums.size(), nums); } };
    Processed: 0.018, SQL: 9