← Back to library

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

アプローチ

思考
  • counter の変数を用意して、max_depth を更新していく
実装
class Solution:
    def maxDepth(self, root: Optional[TreeNode]) -> int:
        max_depth = 0

        return self.get_depth(root, max_depth)

    def get_depth(self, node, depth):
        if not node:
            return depth
        depth += 1
        max_depth = max(max_depth, depth)

        self.get_depth(node.left, max_depth)
        self.get_depth(node.right, max_depth)
        return max_depth
Time Space
注意点
  • max_depth は問題なく計算できているが、再帰処理の結果を受け取っていないため、結果的に 1 が返却される