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

    一、题目

      1、审题

      2、分析

        给出一颗二叉树,求最小高度(根节点到叶节点的最短距离)。

    二、解答

      1、思路:

        方法一、

          采用 BFS 层次遍历的方法进行遍历二叉树。同时,若出现叶子节点,则返回当前高度。

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

      方法二、

        采用递归。

      public int minDepth(TreeNode root) {
            if(root == null)
                return 0;
            
            if(root.left != null && root.right != null)    //    root 左右孩子均存在
                return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
            else                     // root 只有一个孩子
                return Math.max(minDepth(root.left), minDepth(root.right)) + 1;
        }

      另外

      

    public int minDepth(TreeNode root) {
            if(root == null)
                return 0;
            
            int left = minDepth(root.left);
            int right = minDepth(root.right);
            
            if (left == 0  || right == 0) 
                return left + right + 1;
            return  Math.min(left, right) + 1;
        }
  • 相关阅读:
    CTF简介
    最先与最后
    记一次某校版facemash的搭建
    ipv6入门
    win10开启IPv6的两种方法
    安装 Go 1.11 在 Ubuntu 18.04 & 16.04 LTS
    python开发者的AsyncIO
    Python 异步--Await the Future
    Python元类
    alias 和 unalias 命令
  • 原文地址:https://www.cnblogs.com/skillking/p/9734994.html
Copyright © 2011-2022 走看看