https://leetcode.com/problems/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.
The number of nodes in the tree is in the range [0, 104].
DFS로 노드의 레벨을 체크하는 알고리즘이다. 재귀호출로 간단하게 풀 수 있다. 함수에서 level이라는 변수를 가지고 들어가서 재귀호출 될때마다 1씩 증가되고, 이를 최대값 변수와 비교해서 갱신하는 구조이다.
class Solution {
// 최대 level 변수
private int maxLevel = 0;
// dfs로 재귀적으로 level의 최대값 갱신
private void dfs(TreeNode node, int level) {
// 해당 지점의 노드가 없는 경우
if (node == null)
return;
// 노드가 있는 경우 레벨 카운트
maxLevel = Math.max(maxLevel, ++level);
dfs(node.left, level);
dfs(node.right, level);
}
public int maxDepth(TreeNode root) {
dfs(root, 0);
return maxLevel;
}
}