본문 바로가기
Algorithm/LeetCode

[Java] 104. Maximum Depth of Binary Tree

by tabasco 2023. 6. 13.

문제 설명 :

Tree 구조의 Depth를 구하는 문제이다.

 

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int maxDepth(TreeNode root) {
        int count = 0;

        return isDive(root, count);

    }

    private int isDive(TreeNode root, int count){
        if(root == null){
            return count;
        }else{
            count++;
        }

        int left = isDive(root.left, count);
        int right = isDive(root.right, count);

        return (left>=right)?left:right;

    }
}

 

해설 :

left또는 right로 이동하면 level이 증가하기 때문에 그때 node가 null인지를 확인하고, null이 아니면 count를 증가시킨 뒤,
left로 이동했을 때의 count와 right로 이동했을 때 count 중 큰 수를 return 하게 하였다.

'Algorithm > LeetCode' 카테고리의 다른 글

[Java] 108. Convert Sorted Array to Binary Search Tree  (2) 2023.06.13
[Java] 101. Symmetric Tree  (0) 2023.06.12
[Java] 100. Same Tree  (0) 2023.06.12
[Java] 94. Binary Tree Inorder Traversal  (0) 2023.06.12
[Java] 88. Merge Sorted Array  (0) 2023.06.12