[leetcode]Convert Sorted Array to Binary Search Tre

2343 단어 Binary search
순서를 정하는...
가운데는 루트, 루트 왼쪽은 left, 루트 오른쪽은 right
차례로 나무를 세우다.
 
/**
 * 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* createTree(vector<int>&num , int start , int end){
        if(end < start) return nullptr;
        int mid = (start + end) / 2;
        TreeNode* root = new TreeNode(num[mid]);
        root -> left = createTree(num , start , mid - 1);
        root -> right = createTree(num , mid + 1 , end);
        return root; 
    }
    TreeNode *sortedArrayToBST(vector<int> &num) {
       int size = num.size();
       if (size == 0) return nullptr;
       return createTree(num , 0 , size - 1);
    }
};

좋은 웹페이지 즐겨찾기