Maximum Depth of Binary Tree

HeeSeong·2021년 8월 31일
0

LeetCode

목록 보기
25/38
post-thumbnail

🔗 문제 링크

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].

  • 100<=Node.val<=100-100 <= Node.val <= 100



🗝 풀이 (언어 : Java)


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;
    }
}
profile
끊임없이 성장하고 싶은 개발자

0개의 댓글