zoukankan      html  css  js  c++  java
  • Leetcode 108. Convert Sorted Array to Binary Search Tree

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

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        TreeNode* sortedArrayToBST( vector<int>& nums ) {
            
            return helper( nums, 0, nums.size() - 1);
        }
        TreeNode* helper( vector<int>& nums, int lefts, int rights )
        {
            if ( lefts > rights )   
                return nullptr;       
            
            int mid = lefts + ( rights - lefts ) / 2;  // 二分法求取中间值
            TreeNode* root = new TreeNode(nums[mid]); // 将中间值赋值给根节点
            root -> left = helper( nums, lefts, mid -1); // 递归调用,构造左子树
            root -> right = helper( nums, mid + 1, rights);// 递归, 构造右子树
            return root;
        }
    };
  • 相关阅读:
    Linux文件和目录管理常用重要命令
    Windows和Linux下Mysql 重置root 密码
    瀑布流vue-waterfall的高度设置
    vue-cli 引入axios及跨域使用
    Vue 脱坑记
    shell基础
    正则
    安装卸载
    压缩打包
    vim工具
  • 原文地址:https://www.cnblogs.com/simplepaul/p/6750254.html
Copyright © 2011-2022 走看看