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

    题目

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

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

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

    示例:

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

      3
       / 
      9  20
        /  
       15   7

    返回它的最小深度  2.

    题解

    最直接的思路就是递归。

    我们用深度优先搜索来解决这个问题。

    func minDepth(_ root: TreeNode?) -> Int {
        guard let tree = root else { return 0 }
        if tree.left == nil, tree.right == nil {
            return 1
        }
        var minDeepCount = Int.max
        if let left = tree.left {
            minDeepCount = min(minDepth(left), minDeepCount)
        }
        if let right = tree.right {
            minDeepCount = min(minDepth(right), minDeepCount)
        }
        return minDeepCount + 1
    }
  • 相关阅读:
    自己总结的Java归并排序代码
    SpringDataJpa
    多态
    向上转型向下转型
    python面向对象装饰器
    Apache
    git
    μWSGI
    虚拟环境
    软件仓库(持续更新中)
  • 原文地址:https://www.cnblogs.com/guohai-stronger/p/12209476.html
Copyright © 2011-2022 走看看