Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public : TreeNode *res; TreeNode *BST(vector< int > &num, int begin, int end){ if (begin>end) return NULL; int mid=(begin+end)/2; TreeNode *node = new TreeNode(num[mid]); node->left=BST(num,begin,mid-1); node->right=BST(num,mid+1,end); return node; } TreeNode *sortedArrayToBST(vector< int > &num) { return BST(num,0,num.size()-1); } }; |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步