【BFS】【迭代】【Java】Leetcode 二叉树最小深度

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34696236/article/details/81674256
给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点
public class MinDeepTree {
    public static void main(String[] args) {
        TreeNode treeNode=new TreeNode(1);
        TreeNode treeNode1=new TreeNode(7);
        TreeNode treeNode2=new TreeNode(9);
        treeNode.left=treeNode1;
        treeNode.right=treeNode2;
        System.out.println(mindeep(treeNode));

    }
    public static int mindeep(TreeNode treeNode){
        int deep=0;
        treeNode.val=1;
        Queue queue=new LinkedList();
        queue.add(treeNode);
        while (!queue.isEmpty()){
            TreeNode t= (TreeNode) queue.poll();
            deep=t.val;
            if (t.left==null&&t.right==null){
                break;
            }
            deep++;
            if (t.left!=null){
                TreeNode left=t.left;
                left.val=t.val+1;
                queue.add(left);
            }
            if (t.right!=null){
                TreeNode right=t.right;
                right.val=t.val+1;
                queue.add(right);
            }
        }
        return deep;
    }
}

 

展开阅读全文

没有更多推荐了,返回首页