본문 바로가기
Programming/LeetCode

[LeetCode] Maximum Depth of Binary Tree (이진트리 최대 깊이 구하기)

by 데이터현 2022. 4. 8.

https://leetcode.com/problems/maximum-depth-of-binary-tree/

 

Maximum Depth of Binary Tree - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

트리에서 깊이(Depth)는 루트에서부터 현재 노드까지의 거리이다.

최대 깊이는 리프 노드까지 거리 중 가장 긴 거리를 구하면 된다.

 

재귀 방식

# 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 maxDepth(self, root: Optional[TreeNode]) -> int:
        if root is None:
            return 0 
        else:
            return max(self.maxDepth(root.left), self.maxDepth(root.right))+1

 

반복구조 Deque

class Solution:
    def maxDepth(self, root: Optional[TreeNode]) -> int:
        if root is None:
            return 0
        queue = collections.deque([root])
        
        depth = 0
        while queue:
            depth += 1
            for _ in range(len(queue)):
                node = queue.popleft()
                if node.right:
                    queue.append((node.right))
                if node.left:
                    queue.append((node.left))
                    
        return depth

댓글