zoukankan      html  css  js  c++  java
  • leetcode刷题笔记一百一十一题 二叉树的最小深度

    leetcode刷题笔记一百一十一题 二叉树的最小深度

    源地址:111. 二叉树的最小深度

    问题描述:

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

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

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

    示例:

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

    3

    /
    9 20
    /
    15 7

    /**
    本题还是基于递归的思想,需要注意的是题目中对于叶子节点的说明。即没有子结点的结点
    所以对当前节点的情况需要进行讨论
    若要改为迭代方法, 可以使用两个栈结构将当前结点与其的高度分别压入栈即可
    */
    /**
     * Definition for a binary tree node.
     * class TreeNode(var _value: Int) {
     *   var value: Int = _value
     *   var left: TreeNode = null
     *   var right: TreeNode = null
     * }
     */
    object Solution {
        def minDepth(root: TreeNode): Int = {
            //当前结点为null
            if (root == null) return 0
            //单子树结点,需要考虑单子树的高度
            if (root.left == null) return 1 + minDepth(root.right)
            if (root.right == null) return 1 + minDepth(root.left)
            //双子树结点,考虑两子树的最小深度
            return 1 + Math.min(minDepth(root.left), minDepth(root.right)) 
        }
    }
    
  • 相关阅读:
    HTML
    HTML
    HTML
    HTML
    HTML
    HTML
    HTML
    TOMCAT-IDEA远程debug方法
    调整mysql数据库最大连接数
    win10开机时内存使用率达到99%以上
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13447104.html
Copyright © 2011-2022 走看看