본문 바로가기
Algorithm/LeetCode

[Java] 108. Convert Sorted Array to Binary Search Tree

by tabasco 2023. 6. 13.

문제 설명 : 

1차원 int 배열을 활용해 height-balanced BST를 구현하는 문제

 

public TreeNode sortedArrayToBST(int[] nums) {
        return createTree(nums, 0, nums.length - 1);
    }

    private TreeNode createTree(int[] nums, int left, int right) {
        if (left > right) {
            return null;
        }

        int mid = (right + left) / 2;
        TreeNode root = new TreeNode(nums[mid]);

        root.left = createTree(nums, left, mid - 1);
        root.right = createTree(nums, mid + 1, right);

        return root;
    }

 

해설 :

배열의 중앙값을 찾고, 왼쪽 서브배열, 오른쪽 서브배열로 나눈뒤
각 서브 배열들을 재귀적으로 처리하여 구현했다.

'Algorithm > LeetCode' 카테고리의 다른 글

[Java] 104. Maximum Depth of Binary Tree  (0) 2023.06.13
[Java] 101. Symmetric Tree  (0) 2023.06.12
[Java] 100. Same Tree  (0) 2023.06.12
[Java] 94. Binary Tree Inorder Traversal  (0) 2023.06.12
[Java] 88. Merge Sorted Array  (0) 2023.06.12