(Tree) Convert Sorted Array to Binary Search Tree
19 Nov 2019 | algorithm programming leetcodehttps://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
정렬된 배열을 이진 탐색 트리로 변환한다.
정렬된 배열에서 가운데 값을 뽑고 머지소트 원리를 사용하여 왼쪽 부분어레이, 오른쪽 부분어레이에서도 가운데를 뽑아서 왼쪽자식과 오른쪽 자식으로 연결하면 된다.
class Solution {
private TreeNode traverse(int[] nums, int l, int r) {
if(r < l) {
return null;
}
int mid = l + (r - l) / 2;
TreeNode midNode = new TreeNode(nums[mid]);
midNode.left = traverse(nums, l, mid - 1);
midNode.right = traverse(nums, mid + 1, r);
return midNode;
}
public TreeNode sortedArrayToBST(int[] nums) {
return traverse(nums, 0, nums.length - 1);
}
}