首页 > 其他 > 详细

二叉树的最小深度-广度优先-基于GO

时间:2021-04-08 15:04:14      阅读:15      评论:0      收藏:0      [点我收藏+]

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

如:
技术分享图片

则返回3.

  • 广度优先
func minDepth2(root *TreeNode)int{
	if root==nil{//第一次进入时根节点的判断
		return 0
	}
	
	root.deep = 1
	var queue []*TreeNode
	queue = append(queue, root)
	for len(queue)>0{
		node := queue[0] //取出第一个元素
		queue = queue[1:] // 第一个元素出队
		// 一找到叶子节点就返回
		if node.left==nil && node.right==nil{
			return node.deep
		}
		if node.left!=nil{
			node.left.deep = node.deep+1
			queue = append(queue,node.left)
		}
		if node.right!=nil{
			node.right.deep = node.deep+1
			queue = append(queue,node.right)
		}
	}

	return 0// 错误情况
}

二叉树的最小深度-广度优先-基于GO

原文:https://www.cnblogs.com/pangqianjin/p/14631490.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!