楼主:
JIWP (JIWP)
2024-02-29 18:48:11每日连续解100天了,有点累
之后可能不会每天都解
1609. Even Odd Tree
给你一棵二元树,请问是不是Even Odd Tree
Even Odd Tree要满足下面三个条件
1.root的level index为1,他的children level index为2,以此类推
2.所有level index是偶数的node,值必须是奇数,且从左到右要严格递增
3.所有level index是奇数的node,值必须是偶数,且从左到右必须是严格递减
思路:
用BFS去检视每一层是否满足条件
golanf code:
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isEvenOddTree(root *TreeNode) bool {
queue := []*TreeNode{}
queue = append(queue, root)
cnt := 1
level := 0
for len(queue) > 0 {
for cnt > 1 {
temp := queue[0]
queue = queue[1:]
if level%2 == 0 {
if temp.Val >= queue[0].Val || temp.Val%2 != 1 {
return false
}
} else {
if temp.Val <= queue[0].Val || temp.Val%2 != 0 {
return false
}
}
if temp.Left != nil {
queue = append(queue, temp.Left)
}
if temp.Right != nil {
queue = append(queue, temp.Right)
}
cnt