본문 바로가기
알고리즘

[알고리즘] Convert Sorted Array to Binary Search Tree

by keel_im 2021. 7. 26.
반응형

포인트

  • 재귀적으로 오름차순 정렬로 bst를 만드는 알고리즘입니다. 코드 전체를 보면, 이분 탐색과도 비슷한 형태를 띄고 있습니다. 이점을 참고하시면 더욱 좋을 것 같습니다.

🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. 

python

class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
        return self.bst(0, len(nums) - 1, nums)

    def bst(self,left:int, right:int, nums:List[int]) -> TreeNode:
        if left>right:
            # 이분 탐색 처럼 움직인다.
            return 
        
        mid = left+(right-left)//2
        # 다른 언어일 경우, 오버 플로우가 발생할 수 있다.

        return TreeNode(
            nums[mid],
            self.bst(left, mid-1, nums),
            self.bst(mid+1, right, nums)
        )
반응형

'알고리즘' 카테고리의 다른 글

[알고리즘] Word Search  (0) 2021.08.15
[알고리즘] 3Sum Closest  (0) 2021.07.27
[알고리즘] Binary Tree Pruning  (0) 2021.07.24
[알고리즘] Lowest Common Ancestor of a Binary Search Tree  (0) 2021.07.19
[알고리즘] 4Sum  (0) 2021.07.16

댓글