반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 108 | Convert Sorted Array to Binary Search Tree | Python 본문
스터디/코테
[LeetCode] 108 | Convert Sorted Array to Binary Search Tree | Python
yun_s 2022. 8. 10. 09:42728x90
반응형
문제 링크: https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
문제
Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree.
A height-balanced binary tree is a binary tree in which the depth of the two subtrees of every node never differs by more than one.
조건
- 1 <= nums.length <= $10^4$
- $-10^4$ <= nums[i] <= $10^4$
- nums is sorted in a strictly increasing order.
내 풀이
nums가 정렬된 리스트이므로 이를 반 나눠서 중심을 root, 더 작은 리스트를 왼쪽 leef, 더 큰 리스트를 오른쪽 leef로 둔다.
그리고 반 나눠서 어쩌구 하는 행동을 위에서 말한 [더 작은 리스트]와 [더 큰 리스트]에 대해서 반복한다.
코드
# 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 not nums:
return None
mid = len(nums)//2
root = TreeNode(nums[mid])
root.left = self.sortedArrayToBST(nums[:mid])
root.right = self.sortedArrayToBST(nums[mid+1:])
return root
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 387 | First Unique Character in a String | Python (0) | 2022.08.16 |
---|---|
[LeetCode] 98 | Validate Binary Search Tree | Python (0) | 2022.08.11 |
[LeetCode] 823 | Binary Trees With Factors | Python (0) | 2022.08.09 |
[LeetCode] 300 | Longest Increasing Subsequence | Python (0) | 2022.08.08 |
[LeetCode] 377 | Combination Sum IV | Python (0) | 2022.08.05 |
Comments