코린이의 소소한 공부노트

[LeetCode/Easy] 108. Convert Sorted Array to Binary Search Tree 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 108. Convert Sorted Array to Binary Search Tree

무지맘 2023. 7. 18. 12:16

1. Input

1) int[] nums

 

2. Output

1) nums의 요소들로 높이 균형 이진 검색 트리를 만들어서 반환

- 답이 여러 가지일 경우 1개만 반환

 

3. Constraint

1) 1 <= nums.length <= 10^4

2) - 10^4 <= nums[i] <= 10^4

3) nums는 중복 없이 오름차순으로 정렬된 배열이다.

 

4. Example

Input: nums = [-10,-3,0,5,9] -> Output: [0,-3,9,-10,null,5]

Input: nums = [1,3] -> Output: [3,1]

 

5. Code

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        if(nums.length==0) return null;
        int mid = nums.length/2;
        TreeNode p = new TreeNode(nums[mid]);
        p.left = sortedArrayToBST(Arrays.copyOfRange(nums,0,mid));
        p.right = sortedArrayToBST(Arrays.copyOfRange(nums,mid+1,nums.length));
        return p;
    }
}

- 6%, 97%