(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); } }