수 많은 우문은 현답을 만든다

(Easy) Balanced Binary Tree 본문

코딩테스트/Level 3 (deprecated)

(Easy) Balanced Binary Tree

aiden.jo 2023. 6. 18. 18:58

문제

 

Given a binary tree, determine if it is height-balanced

 

Example 1:

Input: root = [3,9,20,null,null,15,7]

Output: true

 

Example 2:

Input: root = [1,2,2,3,3,null,null,4,4]

Output: false

 

Example 3:

Input: root = []

Output: true

 

풀이

더보기
class Solution:
def isBalanced(self, root: Optional[TreeNode]) -> bool:
 
  def balance(node):
    if not node:
      return 0
 
    left = balance(node.left)
    right = balance(node.right)

    #트리는 균형잡힌 트리여야한다.
    if left == -1 or right == -1:
      return -1
   
    #왼쪽과 오른쪽의 차가 1을 초과하면 안된다.
    if abs(left - right) > 1:
      return -1
    return max(left, right) + 1
 
  return balance(root) is not -1

'코딩테스트 > Level 3 (deprecated)' 카테고리의 다른 글

Merge Two Sorted Lists  (0) 2023.06.15
Reverse Linked List  (0) 2023.06.14
(Medium) Valid Parentheses  (1) 2023.06.10