[LeetCode-Tree] Convert Sorted Array to Binary Search Tree

CHOI YUN HOยท2021๋…„ 10์›” 19์ผ
0

๐Ÿ“ƒ ๋ฌธ์ œ ์„ค๋ช…

Convert Sorted Array to Binary Search Tree

[๋ฌธ์ œ ์ถœ์ฒ˜ : LeetCode]

๐Ÿ‘จโ€๐Ÿ’ป ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์ด๋ถ„ํƒ์ƒ‰์„ ํ•˜๋“ฏ์ด ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค.

์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์•™์— ์žˆ๋Š” ๊ฐ’์„ root๋กœ ํ•˜๊ณ ,
์žฌ๊ท€๋ฅผ ์ด์šฉํ•˜์—ฌ
์ฒ˜์Œ~์ค‘์•™-1 ๊นŒ์ง€์˜ ๋ฆฌ์ŠคํŠธ๋กœ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ,
์ค‘์•™+1 ~ ๋ ๊นŒ์ง€์˜ ๋ฆฌ์ŠคํŠธ๋กœ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ
๋งŒ๋“ ๋‹ค.

๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ 1์ผ ๋•Œ๋Š” ๊ฐ’์ด ๋ฆฌ์ŠคํŠธ[0]์ธ ๋…ธ๋“œ๋ฅผ,
0์ผ ๋•Œ๋Š” None์„ ๋ฆฌํ„ดํ•˜์—ฌ ์žฌ๊ท€ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ์„ค์ •ํ•ด์ค€๋‹ค.

๐Ÿ‘จโ€๐Ÿ’ป ์†Œ์Šค ์ฝ”๋“œ

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

class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]:
        if len(nums) == 0: return None
        if len(nums) == 1:
            return TreeNode(nums[0])

        mid = len(nums) // 2
        root = TreeNode(nums[mid])
        leftSub = nums[0:mid]
        rightSub = nums[mid+1:]

        root.left = self.sortedArrayToBST(leftSub)
        root.right = self.sortedArrayToBST(rightSub)

        return root








profile
๊ฐ€์žฌ๊ฐ™์€ ์‚ฌ๋žŒ

0๊ฐœ์˜ ๋Œ“๊ธ€