码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 之Convert Sorted Array to Binary Search Tree(54)

时间:2016-06-17 17:04:55      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

思路很简单,用二分法,每次选中间的点作为根结点,用左、右结点递归。

技术分享

 

技术分享
TreeNode* sortedArrayToBST(vector<int> &num)
      {
          return sortedArrayToBST(num.begin(), num.end());
      }
      template<typename RandomAccessIterator>
      TreeNode* sortedArrayToBST(RandomAccessIterator first, RandomAccessIterator last)
      {
          const auto length = distance(first, last);
          if (length <= 0)return nullptr;

          auto mid = first + length / 2;
          TreeNode *root = new TreeNode(*mid);
          root->left = sortedArrayToBST(first, mid);
          root->right = sortedArrayToBST(mid, last);

          return root;
      }
View Code

 

Leetcode 之Convert Sorted Array to Binary Search Tree(54)

标签:

原文地址:http://www.cnblogs.com/573177885qq/p/5594322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!