Skip to main content
 首页 » 编程设计

Go语言二叉树的最小深度-广度优先

2022年08月18日146insus

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

如:

则返回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// 错误情况 
} 

本文参考链接:https://www.cnblogs.com/pangqianjin/p/14631490.html