[leetcode] 104. Maximum Depth of Binary Tree _ Algorithm Problem Solve for python



1. Problem

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.

Example 1:

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

Example 2:

Input: root = [1,null,2]
Output: 2

Constraints:

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

2. Solution

I solved this problem like this.

  • Complexity
    • Time complexity : O(N)
    • Space complexity : O(N)
  • Step
    • Using list, append node and depth.
    • Confirm data and push left, right children while list is empty.
class Solution:
    def maxDepth(self, root: Optional[TreeNode]) -> int:
        answer = 0
        data = [(root, 1)]

        if not root:
            return 0
            
        while data:
            node, depth = data.pop()
            answer = max(answer, depth)
            if node.left:
                data.append((node.left, depth + 1))
            if node.right:
                data.append((node.right, depth + 1))
        
        return answer