965. 单值二叉树

type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode}func isUnivalTree(root *TreeNode) bool {if root == nil {return true}stack := []*TreeNode{root}var v = root.Valfor len(stack) > 0 {size := len(stack)for i := 0; i < size; i++ {node := stack[i]if node.Val != v {return false}if node.Left != nil {stack = append(stack, node.Left)}if node.Right != nil {stack = append(stack, node.Right)}}stack = stack[size:]}return true
递归
func isUnivalTree1(root *TreeNode) bool {if root == nil {return true}if root.Left != nil && root.Val != root.Left.Val {return false}if root.Right != nil && root.Val != root.Right.Val {return false}return isUnivalTree(root.Left) && isUnivalTree(root.Right)}
