Post

leetcode(리트코드)-110 Balanced Binary Tree(python)

leetcode 110 - Balanced Binary Tree 문제입니다.

1. 문제

https://leetcode.com/problems/balanced-binary-tree/


2. Input , Output


3. 분류 및 난이도

Eazy 난이도 문제입니다.


4. 문제 해석

  • 트리의 모든 자식의 높이가 1이상 차이가 날 경우 False 아닌 경우 True를 리턴합니다.
  • 직관적인 문제입니다.
  • 재귀를 잘 짜지못하여 discuss를 봤습니다. 추후 다시 풀어야겠습니다.

5. code

코드설명

직관적이므로 따로 설명하지 않겠습니다. 모르겠는 분은 질문남겨주세요.

python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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 checkdepth(self,root : TreeNode) -> int:
        if root : 
            left = self.checkdepth(root.left)
            if left == -1 :
                return -1
            right = self.checkdepth(root.right)
            if right == -1 :
                return -1
            if abs(left-right) > 1 :
                return -1
            return max(left,right) +1
        else : 
            return 0
        return count
    def isBalanced(self, root: TreeNode) -> bool:
        res = self.checkdepth(root)
        return False if res == -1 else True

6. 결과 및 후기, 개선점

필요시 c++로 짜드리겠습니다.

This post is licensed under CC BY 4.0 by the author.