[LeetCode] Maximum/Minimum Depth of Binary Tree

1358 단어

104. Maximum Depth of Binary Tree


이 문제는 매우 간단해서 = max{ , } + 1만 이해하면 된다.그리고 귀착을 이해해야 한다.
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int leftDepth = maxDepth(root.left);
        int rightDepth = maxDepth(root.right);
        return Math.max(leftDepth, rightDepth) + 1;
    }
}

111. Minimum Depth of Binary Tree


이 문제는 위의 문제와 약간 미묘한 차이가 있다. 만약에 = min{ , } + 1를 사용하려고 한다면 몇 가지 테스트 용례는 지나갈 수 없다.
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int minDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int leftDepth = minDepth(root.left);
        int rightDepth = minDepth(root.right);
        if (leftDepth == 0 || rightDepth == 0) {
            return leftDepth == 0 ? rightDepth + 1 : leftDepth + 1;
        } else {
            return Math.min(leftDepth, rightDepth) + 1;
        }
    }
}

좋은 웹페이지 즐겨찾기