😺

LeetCoding Challenge Oct. 22: Minimum Depth of Binary Tree

2020/10/22に公開

LeetCode October Challenge の 22 日目。

今日の問題は Minimum Depth of Binary Tree

問題の概要

  • 与えられた二分木について、根から葉ノードまでの最短距離を求める

考え方

  • これは問題を見た瞬間に幅優先探索しか思いつかないやつですね
  • 実装 → submit → accept 👍
    • Runtime 0ms 👍👍

コード

class Solution {
    public int minDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }

        Queue<TreeNode> current = new LinkedList<>();
        current.add(root);

        Queue<TreeNode> next = new LinkedList<>();
        int depth = 1;

        while (true) {
            while (!current.isEmpty()) {
                TreeNode node = current.poll();
                if (node.left == null && node.right == null) {
                    return depth;
                }

                if (node.left != null) {
                    next.add(node.left);
                }
                if (node.right != null) {
                    next.add(node.right);
                }
            }

            depth++;
            Queue<TreeNode> t = current;
            current = next;
            next = t;
        }
    }
}

Discussion