这是树的第32篇算法,力扣链接。
给定一棵二叉树的根节点
root,请找出该二叉树中每一层的最大值。示例1:
输入: root = [1,3,2,5,3,null,9] 输出: [1,3,9]
层级遍历似乎天生适合解这道题:
func largestValues(root *TreeNode) []int {
	var result []int
	if root == nil {
		return result
	}
	stack := []*TreeNode{root}
	for len(stack) > 0 {
		var newStack []*TreeNode
		max := stack[len(stack)-1].Val
		for _, node := range stack {
			if node.Val > max {
				max = node.Val
			}
			if node.Left != nil {
				newStack = append(newStack, node.Left)
			}
			if node.Right != nil {
				newStack = append(newStack, node.Right)
			}
		}
		stack = newStack
		result = append(result, max)
	}
	return result
}








![Failed to build tree: parent link [base_link] of joint [lidar_joint] not found](https://img-blog.csdnimg.cn/direct/61e21c18922341d1a22fc62621053135.png#pic_center)











