Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
주어진 이진(binary) 트리의 최대 깊이를 구하여라
최대 깊이는 루트 노드부터 가장 먼 노드까지 거쳐가는 노드의 개수이다.
풀이 방법 (재귀)
1. 루트 노드부터 탐색을 시작한다.
2. 현재 노드의 왼쪽 노드와 오른쪽 노드를 탐색하여, 함수를 호출할 때마다 depth를 1 증가시켜 depth의 최대 값을 구한다.
3. 노드가 null일 경우, depth 값을 반환한다.
class Solution {
public int solve(TreeNode node, int depth) {
if(node == null)
return depth;
return Math.max(solve(node.left, depth+1), solve(node.right, depth+1));
}
public int maxDepth(TreeNode root) {
int res = solve(root, 0);
return res;
}
}
'알고리즘 > LeetCode' 카테고리의 다른 글
[JAVA] LeetCode 206 - Reverse Linked List (0) | 2020.11.16 |
---|---|
[JAVA] LeetCode 412 - Fizz Buzz (0) | 2020.11.16 |
[JAVA] LeetCode 237 - Delete Node in a Linked List (0) | 2020.11.14 |
[JAVA] LeetCode 136 - Single Number (0) | 2020.11.14 |
[JAVA] LeetCode 344 - Reverse String (0) | 2020.11.09 |