这是树的第31篇算法,力扣链接。
给定一个二叉树的 根节点
root
,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。
示例 1:
输入: root = [2,1,3] 输出: 1
拿到这道题的第一想法,我可以层级遍历选取最左节点。
func findBottomLeftValue(root *TreeNode) int {stack := []*TreeNode{root}result := root.Valfor len(stack) > 0 {var newStack []*TreeNodefor _, node := range stack {if node.Right != nil {if node.Right.Left == nil && node.Right.Right == nil {result = node.Right.Val}newStack = append(newStack, node.Right)}if node.Left != nil {if node.Left.Left == nil && node.Left.Right == nil {result = node.Left.Val}newStack = append(newStack, node.Left)}stack = newStack}}return result
}