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

这题是个很不错的例题,感兴趣的,真可以多学习学习,解题代码如下:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/bool isEvenOddTree(struct TreeNode* root){struct TreeNode* Q[10000];struct TreeNode *p;int rear=0,front=0;Q[rear]=root;rear=(rear+1)%10000;Q[rear]=NULL;rear=(rear+1)%10000;int level=0;int even_pre=-1,odd_pre=1000000;//even 偶数层while(front!=rear){p=Q[front];front=(front+1)%10000;if(p==NULL&&front==rear){break;}if(p==NULL){Q[rear]=NULL;even_pre=-1;odd_pre=1000000;rear=(rear+1)%10000;level++;}else{if(level%2==0){if(p->val<=even_pre||p->val%2!=1){return false;}else{even_pre=p->val;}}else{if(p->val>=odd_pre||p->val%2!=0){return false;}else{odd_pre=p->val;}}if(p->left){Q[rear]=p->left;rear=(rear+1)%10000;}if(p->right){Q[rear]=p->right;rear=(rear+1)%10000;}}}return true;}

1609. 奇偶树-层次遍历-力扣双百代码相关推荐

  1. 2418. 按身高排序-快速排序力扣双百代码

    给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights .两个数组的长度均为 n . 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的 ...

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

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

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

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

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

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

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

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

  6. leetcode *1609. 奇偶树(周赛209)

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

  7. LeetCode 1609 奇偶树(BFS)

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

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

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

  9. 深度优先搜索DFS | Morris遍历:力扣99. 恢复二叉搜索树

    1.题目描述: 2.题解: 方法1:中序遍历迭代 二叉搜索树的性质: 1.若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值: 2.若任意节点的右子树不空,则右子树上所有节点的值均大于 ...

最新文章

  1. 【SVN】linux下svn命令参数详解(二)
  2. 【Code Complete】《Code Complete 》
  3. 深入浅出话命令(Command)-笔记(-)
  4. 斯坦福大学UFLDL教程列表
  5. 视频压缩编码 gop(Group of Pictures)(I帧间隔)的概念、IDR、I帧(关键帧,intra picture)、P帧、B帧、帧内压缩、帧间压缩、pts(显示时间)、dts(解码时间)
  6. SIGIR 2021 | 基于不确定性正则化与迭代网络剪枝的终身情感分类方法
  7. 【广州/深圳 活动】 MVP社区巡讲
  8. 6. Nginx + PHP + FastGCI安装
  9. python怎么安装requests模块_python安装requests第三方模块
  10. macos 字体_巧用 iTerm2 zsh oh-my-zsh 打造炫酷的 MacOS 终端环境
  11. marshaller java 乱码_Marshaller根据对象生成xml文件
  12. spring mvc 前台属性数据的传递和后台属性数据的接收
  13. 通过dSYM文件分析crash日志
  14. 第二章实践与认识及其发展规律
  15. 同一个类中不同方法之间的互相调用
  16. VIT attention实现(paddle2.2)
  17. 微型计算机点火系统的摘要,丰田汽车点火系统故障诊断与排除的毕业论文教案.doc...
  18. 【踩坑专栏】required a bean of type ‘xxx.UserConverter‘ that could not be found
  19. 跟我学 编写QQ找茬辅助1 -原创文章
  20. 基于APW7137的负电源(-12V)方案原理分析

热门文章

  1. CVPR2023论文 连续手语识别解读
  2. POJ - 3287 The Trip, 2007
  3. python emit_PyQT5 emit 和 connect的用法详解
  4. 百度搜索 去除某些关键字
  5. 步进电机失步(丢步)怎么解决?
  6. 注意力机制 - 注意力汇聚:Nadaraya-Watson核回归
  7. LM358制作简易电平灯
  8. NandFlash简介
  9. 纵然放弃20万年薪也要自立门户
  10. c#关于DATATABLE,操作详解