zoukankan      html  css  js  c++  java
  • LeetCode Convert Sorted Array to Binary Search Tree(数据结构)

    题意:

      将一个有序的数组建成一棵平衡的BST树。

    思路:

      因为数组已经有序,每次可以从中点开始建根,再递归下去分别处理左/右子树。

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     
    13     TreeNode* DFS(vector<int>& nums,int L,int R)
    14     {
    15         if(L>R)        return NULL;
    16         int mid=(L+R)>>1;
    17         TreeNode* t=new TreeNode(nums[mid]);
    18         t->left=DFS(nums, L, mid-1);
    19         t->right=DFS(nums, mid+1, R);    
    20         return t;
    21     }
    22 
    23     TreeNode* sortedArrayToBST(vector<int>& nums) {
    24         return DFS(nums,0,nums.size()-1);        
    25     }
    26 };
    AC代码
  • 相关阅读:
    正则表达式
    request库解析
    urllib库解析
    爬虫入门基本原理
    图的遍历dfs和bfs
    KMP算法
    Linux操作系统实验-线程同步
    Leetcode 183场周赛
    并查集--Disjoint Set
    C#杂乱知识汇总
  • 原文地址:https://www.cnblogs.com/xcw0754/p/4924166.html
Copyright © 2011-2022 走看看