码迷,mamicode.com
首页 > 其他好文 > 详细

minDepth

时间:2020-06-06 18:21:27      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:深度   get   list   最短路   sem   root   empty   return   value   

给定一个二叉树,找出其最小深度。

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

说明:?叶子节点是指没有子节点的节点。

示例:

给定二叉树?[3,9,20,null,null,15,7],

    3
   /   9  20
    /     15   7
返回它的最小深度 ?2.

/**
 * 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;
        }
        if(root.left == null && root.right == null){
            return 1;
        }
        int min = Integer.MAX_VALUE;
        if(root.left != null){
            min = Math.min(minDepth(root.left), min);
        }
        if(root.right != null){
            min = Math.min(minDepth(root.right), min);
        }
        return min + 1;
    }
}
// 迭代
public int minDepth(TreeNode root) {
       Queue<Pair<TreeNode, Integer>> queue = new LinkedList<>();
       if (root == null) {
           return 1;
       } else {
           queue.add(new Pair<>(root, 1));
       }
       int cnt = 0;
       while (!queue.isEmpty()) {
           Pair<TreeNode, Integer> t = queue.poll();
           TreeNode t1 = t.getKey();
           cnt = t.getValue();
           if (t1 != null) {
               queue.add(new Pair<>(t1.left, cnt + 1));
               queue.add(new Pair<>(t1.right, cnt + 1));
               if (t1.left == null && t1.right == null) {
                   break;
               }
           }
       }
       return cnt;
   }

minDepth

标签:深度   get   list   最短路   sem   root   empty   return   value   

原文地址:https://www.cnblogs.com/athony/p/13055645.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!