【题目】*1609. 奇偶树

如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 :

二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推。
偶数下标 层上的所有节点的值都是 奇 整数,从左到右按顺序 严格递增
奇数下标 层上的所有节点的值都是 偶 整数,从左到右按顺序 严格递减
给你二叉树的根节点,如果二叉树为 奇偶树 ,则返回 true ,否则返回 false 。

示例 1:

输入:root = [1,10,4,3,null,7,9,12,8,6,null,null,2]
输出:true
解释:每一层的节点值分别是:
0 层:[1]
1 层:[10,4]
2 层:[3,7,9]
3 层:[12,8,6,2]
由于 0 层和 2 层上的节点值都是奇数且严格递增,而 1 层和 3 层上的节点值都是偶数且严格递减,因此这是一棵奇偶树。

示例 2:

输入:root = [5,4,2,3,3,7]
输出:false
解释:每一层的节点值分别是:
0 层:[5]
1 层:[4,2]
2 层:[3,3,7]
2 层上的节点值不满足严格递增的条件,所以这不是一棵奇偶树。

示例 3:

输入:root = [5,9,1,3,5,7]
输出:false
解释:1 层上的节点值应为偶数。

示例 4:

输入:root = [1]
输出:true

示例 5:

输入:root = [11,8,6,1,3,9,11,30,20,18,16,12,10,4,2,17]
输出:true

提示:
树中节点数在范围 [1, 10^5] 内
1 <= Node.val <= 10^6

【解题思路1】BFS

class Solution {public boolean isEvenOddTree(TreeNode root) {if(root == null)    return true;Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);int level = -1;while(!queue.isEmpty()) {int size = queue.size();level++;int pre;int flag = level % 2;if(flag == 0) { // 偶数层,奇数递增pre = Integer.MIN_VALUE;} else {pre = Integer.MAX_VALUE;}for(int i = 0; i < size; i++) {TreeNode temp = queue.poll();if(temp.val % 2 == flag)   return false;if(flag == 0 && pre >= temp.val) return false;if(flag == 1 && pre <= temp.val) return false;pre = temp.val;if(temp.left != null)   queue.offer(temp.left);if(temp.right != null)  queue.offer(temp.right);}}return true;}
}

leetcode *1609. 奇偶树(周赛209)相关推荐

  1. 【Leetcode -1609.奇偶树 -1122.数组的相对排序】

    Leetcode Leetcode -1609.奇偶树 Leetcode -1122.数组的相对排序 Leetcode -1609.奇偶树 题目:如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : ...

  2. LeetCode 1609 奇偶树(BFS)

    1609. 奇偶树https://leetcode-cn.com/problems/even-odd-tree/ 如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : 二叉树根节点所在层下标为 0 ...

  3. LeetCode 1609. 奇偶树(层序遍历)

    文章目录 1. 题目 2. 解题 1. 题目 如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : 二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类 ...

  4. LeetCode——1609.奇偶树

    大佬,牛!!! 题目:给定一颗二叉树,其中层数从0开始,然后如果满足两个条件,就称为奇偶树,则返回true 奇数层,所有节点必须是偶数,并且严格递减: 偶数层,所有节点必须是奇数,并且严格递增. 思路 ...

  5. LeetCode 1609 奇偶树

    分析 层次遍历,思路比较简单,注意细节即可 代码 class Solution {public:bool isEvenOddTree(TreeNode* root) {queue<TreeNod ...

  6. leetcode每日一题1609. 奇偶树 圣诞节你做奇偶数了没 BFS套模板一遍过

    本文目录 leetcode每日一题1609. 奇偶树 圣诞节你做奇偶数了没 BFS套模板一遍过~ 写在前面 题目 示例 提示 思路 代码实现 执行结果 写在最后 leetcode每日一题1609. 奇 ...

  7. 【LeetCode】1609. 奇偶树、1122. 数组的相对排序

    作者:小卢 专栏:<Leetcode> 喜欢的话:世间因为少年的挺身而出,而更加瑰丽.                                  --<人民日报> 16 ...

  8. 模拟卷Leetcode【普通】1609. 奇偶树

    1609. 奇偶树 如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : 二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推. 偶数下标 层上的所有 ...

  9. 1609. 奇偶树-层次遍历-力扣双百代码

    1609. 奇偶树-层次遍历-力扣双百代码 如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : 二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推 ...

最新文章

  1. 推荐:介绍一个UndoFramework
  2. 3dvary灯光材质为什么不亮_夜间跑高速开近光灯与为什么近光灯和刹车泡容易坏。...
  3. python检索地址_35.leetcode题目讲解(Python): 搜索插入位置
  4. date 的基本使用 suse
  5. Spring Data Pivotal Gemfire教程
  6. 中文python笔记_python 中文编码笔记
  7. 《网络风险及网络安全》培训总结
  8. position:fixed定位
  9. 萌新的Python练习实例100例(一)四个数字组成互不相同且无重复的三位数
  10. linux url%7b怎么转化成,shell下解码url
  11. 计算机一级答案文件不存在,全国计算机等级考试一级试题及答案文件.doc
  12. IIS7.5标识介绍
  13. 上传文件(ajax结合form表单)
  14. JBPM工作流(八)——流程实例(PI)Process Instance
  15. python文本交换_有没有办法用python交换文本文件中的两行文本?
  16. 学习记录542@阿里云OCR身份证识别具体实现
  17. 关于运行微信小程序报错 [微信小程序开发者工具] Error: read EBADF
  18. 20170603学习笔记整理
  19. 解决透视变换后图片信息丢失的问题,附程序
  20. openwrt 无线中继设置–固定IP+打印服务器和文件共享

热门文章

  1. unity打包Android的APK
  2. 关系模式最小依赖集怎么求_偏最小二乘法的原理与实现
  3. Fescar 源码解析系列
  4. MATLAB实现Jacobi和Guass-Seidel迭代法(初学者向)
  5. 谈编程是个什么玩意儿
  6. php上传2个文件代码,php文件上传类程序代码(2)
  7. Exchange/Office365 自动处理脚本:前言
  8. linux进程控制命令行,linux命令行学习(37):控制进程的方法
  9. 从苏宁电器到卡巴斯基第36篇:我与卡巴斯基的邂逅(下)(大结局)
  10. 计算机李长云,11月14日下午_李长云教授应邀作考研专题讲座_学术动态_湖南交通工程学院...