diff --git a/problems/0108.将有序数组转换为二叉搜索树.md b/problems/0108.将有序数组转换为二叉搜索树.md index e82d6e95..7dcce649 100644 --- a/problems/0108.将有序数组转换为二叉搜索树.md +++ b/problems/0108.将有序数组转换为二叉搜索树.md @@ -375,8 +375,25 @@ var sortedArrayToBST = function (nums) { }; ``` +##C +递归 +```c +struct TreeNode* traversal(int* nums, int left, int right) { + if (left > right) + return NULL; + int mid = left + ((right - left) / 2); + struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode)); + root->val = nums[mid]; + root->left = traversal(nums, left, mid - 1); + root->right = traversal(nums, mid + 1, right); + return root; +} - +struct TreeNode* sortedArrayToBST(int* nums, int numsSize) { + struct TreeNode* root = traversal(nums, 0, numsSize - 1); + return root; +} +``` ----------------------- * 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)