문제 설명 :
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 |