컴퓨터 과학 Computer Science/코딩테스트 Coding Test

리트코드leetcode - 104. Maximum Depth of Binary Tree

Tap to restart 2022. 3. 20. 12:00

문제 출처: leetcode - 104. Maximum Depth of Binary Tree

 

문제

Given the root of a binary tree, return its maximum depth.
A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

 

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

 

The number of nodes in the tree is in the range [0, 104].
-100 <= Node.val <= 100

 

풀이

트리문제다.

python list 활용

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

 

collections deque 활용

import collections

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