본문 바로가기
Algorithm/파이썬 알고리즘 인터뷰

[트리] 정렬된 배열의 이진 탐색 트리 반환

by 밤초록 2022. 5. 16.
108 | Convert Sorted Array to Binary Search Tree
https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/

 

 

 

 

 

작성 코드 (30분 내 해결 X)

 

  • 인덱스 값으로 append?
  • 재귀 호출?? 어떻게 인자를 받을 것인가?

 

이상 코드

 

from typing import List


# Definition for a binary tree node.
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
        if not nums:
            return None

        mid = len(nums) // 2

        # 분할 정복으로 이진 검색 결과 트리 구성
        node = TreeNode(nums[mid])
        node.left = self.sortedArrayToBST(nums[:mid])
        node.right = self.sortedArrayToBST(nums[mid + 1:])

        return node

 

 

  • 중앙값을 갖도록 내림값 리턴하는 // 연산자 사용
  • 절반씩 분할해 처리되는 분할 정복 구조로 처리됨
반응형

댓글