104. Maximum Depth of Binary Tree - Easy

前往題目

之前寫的文章

思路

這題有好多種寫法,光是DFS就可以寫成幾個不同的樣子

  1. 邊走邊紀錄深度

Code

自己寫的
class Solution {
    int res = 1;
    public int maxDepth(TreeNode root) {
        if (root == null) return 0;
        
        dfs(root, 1);
        return res;
    }

    private void dfs(TreeNode node, int depth) {
        if (node == null) return;

        res = Math.max(res, depth);

        dfs(node.left, depth + 1);
        dfs(node.right, depth + 1);

        return;
    }
}
根據上面的自己改造了一下
class Solution {
    public int maxDepth(TreeNode root) {
        if (root == null) return 0;
        return dfs(root);
    }

    private int dfs(TreeNode node) {
        if (node == null) return 0;

        int left = dfs(node.left) + 1;
        int right = dfs(node.right) + 1;

        return Math.max(left, right);
    }
}
NeetCode大大的解法,直接把原method當作dfs
class Solution {
    public int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
    }

}

104. Maximum Depth of Binary Tree - Easy
https://f88083.github.io/2024/03/23/104-Maximum-Depth-of-Binary-Tree-Easy/
作者
Simon Lai
發布於
2024年3月23日
許可協議