zoukankan      html  css  js  c++  java
  • 【leetcode】Convert Sorted Array to Binary Search Tree (easy)

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

    有序数组变二叉平衡搜索树,不难,递归就行。每次先序建立根节点(取最中间的数),然后用子区间划分左右子树。

    一次就AC了

    注意:new 结构体的时候对于

    struct TreeNode {
         int val;
         TreeNode *left;
         TreeNode *right;
         TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    };

    要用 TreeNode * root = new TreeNode(123);  与构造函数的形式要一致。

    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <queue>
    #include <stack>
    using namespace std;
    
    //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 *sortedArrayToBST(vector<int> &num) {
            if(num.empty())
            {
                return NULL;
            }
    
            int nr = num.size()/2;
            TreeNode * root = new TreeNode(num[nr]);
    
            vector<int> numl(num.begin(), num.begin() + nr);
            vector<int> numr(num.begin() + nr + 1, num.end());
            root->left = sortedArrayToBST(numl);
            root->right = sortedArrayToBST(numr);
    
            return root;
        }
    };
    
    int main()
    {
        Solution s;
        vector<int> num;
        num.push_back(1);
        num.push_back(2);
        num.push_back(3);
        num.push_back(4);
        num.push_back(5);
        num.push_back(6);
        num.push_back(7);
    
        TreeNode * ans = s.sortedArrayToBST(num);
    
        return 0;
    }
  • 相关阅读:
    C#中如何求时间间隔?
    Ilist<T> 转换成 DataSet
    EditPlus 快捷键
    Array和ArrayList的异同点
    sql server 查询数据库中有多少个表
    jquery + Css 模式对话框
    paddingtop、margintop和top的区别
    JQuery之ContextMenu(右键菜单)
    关于TextBox的Enable与ReadOnly属性
    AjaxToollit 3.5 使用整理
  • 原文地址:https://www.cnblogs.com/dplearning/p/4127261.html
Copyright © 2011-2022 走看看