zoukankan      html  css  js  c++  java
  • 二叉树的最小深度-深度优先-基于GO

    给定一个二叉树,找出其最小深度。
    最小深度是从根节点到叶子节点经过的最短路径上的节点数量。

    如:

    则返回3.

    • 深度优先
    package main
    
    import (
    	"fmt"
    	"math"
    )
    
    type TreeNode struct{
    	val int
    	left *TreeNode
    	right *TreeNode
    }
    
    func minDepth(root *TreeNode)int{
    	if root==nil{//第一次进入时根节点的判断
    		return 0
    	}
    	if root.left==nil&&root.right==nil{
    		return 1
    	}
    
    	var min = math.MaxInt64
    	if root.left!=nil{
    		min = int(math.Min(float64(minDepth(root.left)),
    						float64(min)))
    	}
    	if root.right!=nil{
    		min = int(math.Min(float64(minDepth(root.right)),
    			float64(min)))
    	}
    	return min+1 // 1为当前节点的深度
    }
    
    func main(){
    	var node7 = TreeNode{7,nil,nil}
    	var node6 = TreeNode{6,&node7,nil}
    	var node5 = TreeNode{5,nil,nil}
    	var node4 = TreeNode{4,nil,nil}
    	var node3 = TreeNode{3,&node6, nil}
    	var node2 = TreeNode{2,&node4,&node5}
    	var node1 = TreeNode{7,&node2,&node3}
    	fmt.Println(minDepth(&node1))
    }
    
  • 相关阅读:
    表单提交:button input submit 的区别
    JavaScript中改变this指针的注意事项
    宝塔服务器配置nginx刷新404的问题汇总
    ES6笔记整理
    axios网络请求
    v-model双向绑定
    v-bind动态绑定
    前端模块化
    vue router 路由
    JS高阶函数
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14631193.html
Copyright © 2011-2022 走看看