题解 | #将升序数组转化为平衡二叉搜索树#

将升序数组转化为平衡二叉搜索树

http://www.nowcoder.com/practice/7e5b00f94b254da599a9472fe5ab283d

  1. 注意中点的取值,以及终止条件

    class Solution {
    public:
     /**
      *
      * @param num int整型vector
      * @return TreeNode类
      */
     TreeNode *sortedArrayToBST(vector<int> &num) {
         if (num.size() < 1) return nullptr;
         TreeNode *root = preOrder(num, 0, num.size() - 1);
         return root;
     }
    
     TreeNode *preOrder(vector<int> &num, int left, int right) {
         if (left > right) return nullptr;//注意是,左大于右
         // 1. 找到中间节点
         int mid = left + (right - left + 1) / 2;//注意这个中点的取值方法
         // 2. 递归构建左右
         TreeNode *root = new TreeNode(num[mid]);
         root->left = preOrder(num, left, mid - 1);
         root->right = preOrder(num, mid + 1, right);
         return root;
     }
    };
算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

头像
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务