zoukankan      html  css  js  c++  java
  • Minimum Depth of Binary Tree leetcode java

    题目

    Given a binary tree, find its minimum depth.

    The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

    题解

    递归解法急速判断左右两边子树哪个depth最小,要注意如果有个节点只有一边孩子时,不能返回0,要返回另外一半边的depth。

    递归解法:

    1     public int minDepth(TreeNode root) {
    2         if(root == null)
    3             return 0;
    4         int minleft = minDepth(root.left);
    5         int minright = minDepth(root.right);
    6         if(minleft==0 || minright==0)
    7             return minleft>=minright?minleft+1:minright+1;
    8         return Math.min(minleft,minright)+1;
    9     }

     非递归解法:

     1     public int minDepth(TreeNode root) {
     2         if(root == null)
     3             return 0;
     4         
     5         int depth = 1;//The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
     6         LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
     7         queue.add(root);
     8         int curnum = 1;
     9         int nextnum = 0;
    10         while(!queue.isEmpty()){
    11             TreeNode cur = queue.poll();
    12             curnum--;
    13             
    14             if(cur.left == null && cur.right == null)
    15                 return depth;
    16             
    17             if(cur.left != null){
    18                queue.add(cur.left);
    19                nextnum++;
    20             }
    21             
    22             if(cur.right != null){
    23                 queue.add(cur.right);
    24                 nextnum++;
    25             }
    26             
    27             if(curnum == 0){
    28                 curnum = nextnum;
    29                 nextnum = 0;
    30                 depth++;
    31             }
    32         }
    33         return depth;
    34     }

  • 相关阅读:
    Apache Jmeter 性能测试
    linux 达梦数据库 命令行 卸载
    vue控制台报错Duplicate keys detected: 'xxxx'. This may cause an update error.解决方案
    springboot报错说 Failed to parse multipart servlet request; nested exception is java.io.IOException
    简单理解Callable接口
    Windows下设置Mongodb用户名密码
    Win10 搭建FTP环境,并使用Java实现上传,下载,删除
    【小组展示】1
    【计网II】
    【密码学】AES
  • 原文地址:https://www.cnblogs.com/springfor/p/3879680.html
Copyright © 2011-2022 走看看