奇偶树

作者: xialu | 来源:发表于2021-12-25 22:58 被阅读0次

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/even-odd-tree

题目描述:

如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 :
二叉树根节点所在层下标为 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, 105] 内
  • 1 <= Node.val <= 106
代码实现:
class Solution {
    public boolean isEvenOddTree(TreeNode root) {
       Deque<TreeNode> d = new ArrayDeque();
       d.addLast(root);
       // true:偶数层,false:奇数层.
       boolean flag = true;
       while (!d.isEmpty()) {
           // 节点值的范围:1 <= Node.val <= 1000000
           int size = d.size(), pre = flag ? 0 : 0x3f3f3f3f;
           // 同一层
           while (size-- > 0) {
               TreeNode node = d.pollFirst();
               int cur = node.val;
               // 偶数层,如果数字是偶数或者不严格递增,则返回false.
               if (flag && (cur % 2 == 0 || cur <= pre)) return false;
               // 奇数层,如果数字是奇数或者不严格递减,则返回false.
               if (!flag && (cur % 2 != 0 || cur >= pre)) return false;
               // 记录当前元素.
               pre = cur;
               // 如果左孩子节点存在.
               if (node.left != null) d.addLast(node.left);
               // 如果右孩子节点存在.
               if (node.right != null) d.addLast(node.right);
           }
           // 更新奇偶.
           flag = !flag;
       }
       return true;
    }
}

相关文章

  • 奇偶树

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/even-o...

  • 3d053期打黑必备

    胆组4579 尾:单挑6 奇偶:偶奇偶 偶奇奇

  • 分类练习题1

    1.为四个布尔属性A,B,C,D的奇偶函数画一棵完全决策树。可以简化该决策树吗? 不能简化该决策树。 2.考虑下表...

  • 奇偶链表排序

    奇偶链表排序

  • 奇偶

    斗地主时不舍得大你 因为想让你开心 困了也要陪你聊天 因为知道你害怕 在军营约好回来一起吃火锅 因为你喜欢 一年四...

  • jq全选反选

    奇偶变色 图片切换

  • 2017-10-04

    270期形态奇偶奇。防奇偶偶。012346最小值0 103-140-104- 百13 十0246 个135

  • 判断数的奇偶性

    判断数的奇偶性

  • 2019-02-02

    2019-02-0211.2.2 判断数值的奇偶性ISODD函数和ISEVEN函数能够判断数字的奇偶性,如果参数不...

  • 奇偶链表

    奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的...

网友评论

      本文标题:奇偶树

      本文链接:https://www.haomeiwen.com/subject/qiujqrtx.html