这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » convert-sorted-array-to-binary-search-tr

共1条 1/1 1 跳转至

convert-sorted-array-to-binary-search-tree

高工
2018-01-22 17:18:33     打赏

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


思路:和链表转化成平衡二叉树的思路一样,不过数组找中间位置比较简单

[cpp] view plain copy
  1. class Solution {  

  2. public:  

  3.     TreeNode* sortedArrayToBST(vector<int>& num)  

  4.     {  

  5.         if (num.empty())  

  6.         {  

  7.             return NULL;  

  8.         }  

  9.   

  10.         return vecToBST(0, num.size()-1, num);  

  11.     }  

  12.   

  13.     TreeNode* vecToBST(int low, int high, vector<int> v)  

  14.     {  

  15.         int mid;  

  16.         mid = (low+high+1)/2;//找中间位置  

  17.         TreeNode* root = new TreeNode(v[mid]);  

  18.         if (mid-1>=low)  

  19.         {  

  20.             root->left= vecToBST(low, mid-1, v);  

  21.         }  

  22.         if (mid+1<=high)  

  23.         {  

  24.             root->right = vecToBST(mid+1, high, v);  

  25.         }  

  26.   

  27.         return root;  

  28.     }  

  29. };  




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]