zoukankan      html  css  js  c++  java
  • 第111题:二叉树的最小深度

    一. 问题描述

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

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

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

    示例:

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

        3

       /

      9  20

          / 

       15   7

    返回它的最小深度  2.

    二. 解题思路

    本题思路:采用深度优先遍历+递归的方式进行求解。

    步骤一:构建递归函数(根节点),采用自下而上的方式,先从叶节点进行判断,找到其最低深度。

    步骤二:然后递归上一层节点,判断其左右子树的节点的最小深度,重复递归,最终返回最低深度。

    三. 执行结果

    执行用时 :0 ms, 在所有 java 提交中击败了100.00%的用户

    内存消耗 :37.6 MB, 在所有 java 提交中击败了56.49%的用户

    四. Java代码

    class Solution {
        public int minDepth(TreeNode root) {
            if(root==null) {
               return 0;
           }else {
               return getTree(root);
           }
        }
        public int getTree(TreeNode root) {
            int leftnum=1,rightnum=1;
            
            if(root.left!=null) {
                leftnum=getTree(root.left)+1;
            }
            if(root.right!=null) {
                rightnum=getTree(root.right)+1;
            }
            if(root.left!=null&&root.right!=null) {
                return Math.min(leftnum, rightnum);
            }else {
                return Math.max(leftnum, rightnum);
            }
            
        }
    }
  • 相关阅读:
    VB中DateDiff 函数解释
    Offer是否具有法律效力?
    Binder机制1---Binder原理介绍
    cidaemon.exe进程cpu占用率高及关闭cidaemon.exe进程方法
    LeetCode——Longest Palindromic Substring
    memset函数具体说明
    Android ViewPager使用具体解释
    Interpreter
    Android中ExpandableListView控件基本使用
    android performClick使用
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11842160.html
Copyright © 2011-2022 走看看