P16. 二叉树的最小深度

https://algocasts.io/episodes/kVG9YGgq

感觉…depth初始设置成0,写成下面这样更方便与求最大深度对比?
因为,按题序先做的求最小,在后面,求最大深度时顺手就写了 int depth = 1。。。

public int minDepth(TreeNode root) {
        if (root == null) return 0;
        Queue<TreeNode> q = new LinkedList<>();
        q.add(root);
        int depth = 0;
        while (!q.isEmpty()) {
            int size = q.size();
            for (int i = 0; i < size; i++) {
                TreeNode s = q.poll();
                if (s.left == null && s.right == null) return depth + 1;
                if (s.left != null) q.add(s.left);
                if (s.right != null) q.add(s.right);
            }
            depth++;
        }
        return -1;
    }

@ky

嗯,这么写确实更容易横向对比。 :+1:

depth 的初始值有区别,主要原因是一个是在 depth++ 前返回,一个是在 depth++ 后返回。