Maximum Depth of Binary Tree - LeetCode

Problem

  1. input: 이진트리의 root
  2. output: 주어진 트리의 최대 depth 리턴

Idea

재귀를 통해 트리를 탐색 → Sol1

Solution

  1. 재귀

    재귀를 통해 트리를 탐색 → 최대 depth 갱신

    /**
     * Example:
     * var ti = TreeNode(5)
     * var v = ti.`val`
     * Definition for a binary tree node.
     * class TreeNode(var `val`: Int) {
     *     var left: TreeNode? = null
     *     var right: TreeNode? = null
     * }
     */
    class Solution {
        var answer = 0
        fun maxDepth(root: TreeNode?): Int {
            search(root)
            return answer
        }
    
        private fun search(root: TreeNode?, depth: Int = 0) {
            if (root == null) return
            answer = maxOf(answer, depth + 1) // 최대 깊이 갱신
            search(root.left, depth + 1)
            search(root.right, depth + 1)
        }
    }
    

    시간 복잡도: 트리 탐색 = n

    Untitled

Point