Сложность: easy
Дан корень бинарного дерева, верните его максимальную глубину.
Максимальная глубина бинарного дерева — это количество узлов вдоль самого длинного пути от корневого узла до самого удалённого листового узла.
Пример:
Input: root = [3,9,20,null,null,15,7]
Output: 3
👨💻 Алгоритм:
1⃣Можно обойти дерево, используя стратегию поиска в глубину (DFS) или поиска в ширину (BFS).
2⃣Для данной задачи подойдет несколько способов.
3⃣Здесь мы демонстрируем решение, реализованное с использованием стратегии DFS и рекурсии.
😎 Решение:
class TreeNode {
var val: Int
var left: TreeNode?
var right: TreeNode?
init(_ val: Int) {
self.val = val
self.left = nil
self.right = nil
}
}
func maxDepth(_ root: TreeNode?) -> Int {
guard let root = root else {
return 0
}
let leftHeight = maxDepth(root.left)
let rightHeight = maxDepth(root.right)
return 1 + max(leftHeight, rightHeight)
}Ставь 👍 и забирай 📚 Базу знаний