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

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

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

  • 二叉树根节点所在层下标为 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

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/even-odd-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {
public:bool isEvenOddTree(TreeNode* root) {queue<TreeNode*> q;q.push(root);bool desc = false;//降序?(初始0层,是升序)while(!q.empty()) {int size = q.size();int cur, prev = desc ? INT_MAX : -1;while(size--){cur = q.front()->val;if(cur%2 == 1 && desc)return false;if(cur%2==0 && !desc)return false;if(cur==prev || (cur > prev && desc)||(cur < prev && !desc))return false;if(q.front()->left)q.push(q.front()->left);if(q.front()->right)q.push(q.front()->right);q.pop();prev = cur;}desc = !desc;}return true;}
};

448 ms 147.3 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据的特征工程

数据的特征工程 1 什么是数据的特征工程 特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程&#xff0c;从而提高了对未知数据的模型准确性。 特征工程的意义&#xff1a;将直接影响模型的预测结果。 2 数据的来源与类型 2.1 数据的来源 企业日益积累…

数据库实例:mysql与redis结合用户登录

加入redis后登录逻辑如下图&#xff0c;将图中nosql的位置换为redis即可 用户数据存的键为用户名&#xff0c;值为密码 将原来MySQL操作的代码封装到一个方法中&#xff0c;代码如下 defmysql_login(): #redis中没有则到mysql中查询 sqlselect upwd from py_users wher…

LeetCode 1610. 可见点的最大数目(atan2函数求夹角)

文章目录1. 题目2. 解题1. 题目 给你一个点数组 points 和一个表示角度的整数 angle &#xff0c;你的位置是 location &#xff0c;其中 location [posx, posy] 且 points[i] [xi, yi] 都表示 X-Y 平面上的整数坐标。 最开始&#xff0c;你面向东方进行观测。你 不能 进行…

[翻译]API Guides - Bound Services

官方文档原文地址&#xff1a;http://developer.android.com/guide/components/bound-services.html 一个Bound Service是一个客户端-服务器接口的服务。一个Bound Service允许组件&#xff08;像activity&#xff09;绑定一个service&#xff0c;发送请求&#xff0c;接受结果…

sklearn数据集与估计器

sklearn数据集与估计器 1 sklearn数据集 &#xff08;1&#xff09;数据来源&#xff1a;大多数以文件的形式 &#xff08;csv文件..&#xff09;, 因为mysql有性能瓶颈、读取速度遭到限制&#xff0c;数据大的时候很费时间 &#xff08;2&#xff09;读取数据的工具&#…

LeetCode 935. 骑士拨号器(动态规划)

文章目录1. 题目2. 解题1. 题目 国际象棋中的骑士可以按下图所示进行移动&#xff1a; 这一次&#xff0c;我们将 “骑士” 放在电话拨号盘的任意数字键&#xff08;如上图所示&#xff09;上&#xff0c; 接下来&#xff0c;骑士将会跳 N-1 步。每一步必须是从一个数字键跳到…

k近邻算法(KNN)-分类算法

k近邻算法(KNN)-分类算法 1 概念 定义&#xff1a;如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别&#xff0c;则该样本也属于这个类别。 k-近邻算法采用测量不同特征值之间的距离来进行分类。 2 优缺点 优点&#xff1a;简单&a…

LeetCode 822. 翻转卡片游戏(哈希)

文章目录1. 题目2. 解题1. 题目 在桌子上有 N 张卡片&#xff0c;每张卡片的正面和背面都写着一个正数&#xff08;正面与背面上的数有可能不一样&#xff09;。 我们可以先翻转任意张卡片&#xff0c;然后选择其中一张卡片。 如果选中的那张卡片背面的数字 X 与任意一张卡片…

朴素贝叶斯算法-分类算法

朴素贝叶斯算法-分类算法 1 概率基础 概率定义为一件事情发生的可能性 联合概率&#xff1a;包含多个条件&#xff0c;且所有条件同时成立的概率&#xff0c;记作P(A,B) 条件概率&#xff1a;事件A在另一个事件B已经发生条件下的发送概率&#xff0c;记作P(A|B) 在A1,A2相…

django简介及环境搭建

MVC简介 MVC框架的核心思想是&#xff1a;解耦&#xff0c;让不同的代码块之间降低耦合&#xff0c;增强代码的可扩展性和可移植性&#xff0c;实现向后兼容 M全拼为Model&#xff0c;主要封装对数据库层的访问&#xff0c;内嵌ORM框架&#xff0c;实现面向对象的编程来操作数据…

LeetCode 1312. 让字符串成为回文串的最少插入次数(区间DP)

文章目录1. 题目2. 解题1. 题目 给你一个字符串 s &#xff0c;每一次操作你都可以在字符串的任意位置插入任意字符。 请你返回让 s 成为回文串的 最少操作次数 。 「回文串」是正读和反读都相同的字符串。 示例 1&#xff1a; 输入&#xff1a;s "zzazz" 输出&…

Django创建项目

创建项目的名称为test1&#xff0c;完成“图书-英雄”信息的维护&#xff0c;创建应用名称为booktest 创建项目 cd /home/Desktop/ mkdir pytest cd pytest 创建项目的命令如下&#xff1a; django-admin startproject test1 项目默认目录说明 进入test1目录&#xff0c;查看…

分类模型的评估

分类模型的评估 在许多实际问题中&#xff0c;衡量分类器任务的成功程度是通过固定的性能指标来获取。一般最常见使用的是准确率&#xff0c;即预测结果正确的百分比&#xff0c;方法为estimator.score() 1 混淆矩阵 有时候&#xff0c;我们关注的是样本是否被正确诊断出来。…

LeetCode 996. 正方形数组的数目(回溯+剪枝)

文章目录1. 题目2. 解题1. 题目 给定一个非负整数数组 A&#xff0c;如果该数组每对相邻元素之和是一个完全平方数&#xff0c;则称这一数组为正方形数组。 返回 A 的正方形排列的数目。两个排列 A1 和 A2 不同的充要条件是存在某个索引 i&#xff0c;使得 A1[i] ! A2[i]。 …

[Java]java反射随笔

类是面向对象的灵魂&#xff0c;一切事物都可以以类来抽象。 在java使用过程中&#xff0c;我们可能会经常用到一个反射的知识&#xff0c;只是别人都封装好的&#xff0c;如jdbc的加载驱动类有一句Class.for(“…jdbc…”).newInstance.当然框架也是离不开了反射&#xff0c;s…

模型的选择与调优

模型的选择与调优 1 交叉验证 1.1 交叉验证过程 交叉验证&#xff1a;为了让被评估的模型更加准确可信 交叉验证的意义&#xff1a;为了使一部分数据即当成验证集&#xff0c;也做过训练集&#xff0c;更加准确得出准确率&#xff0c;把最后的准确率取平均值。 注意&#…

Django创建图书管理项目(完整版

一、创建项目test1及应用booktest 创建应用booktest 二、安装应用 在test1/settings.py中INSTALLED_APPS下添加应用的名称就可以完成安装 初始项目的INSTALLED_APPS如下图&#xff1a; 在元组中添加一个新的项&#xff0c;当前示例为booktest booktest, 三、设计模型 1.定义模型…

05.序列模型 W3.序列模型和注意力机制

文章目录1. 基础模型2. 选择最可能的句子3. 集束搜索&#xff08;Beam Search&#xff09;4. 改进集束搜索5. 集束搜索的误差分析6. Bleu 得分7. 注意力模型直观理解8. 注意力模型9. 语音识别&#xff08;Speech recognition&#xff09;10. 触发字检测&#xff08;Trigger Wor…

决策树-分类算法

决策树-分类算法 1 认识决策树 决策树是一种基本的分类方法&#xff0c;也可以用于回归。我们一般只讨论用于分类的决策树。决策树模型呈树形结构&#xff0c;在分类问题中&#xff0c;表示基于特征对实例进行分类的过程&#xff0c;它可以认为是if-then规则的集合。在决策树…

在Visual Studio中利用NTVS创建Pomelo项目

刚看新闻&#xff0c;才知道微软发布了Node.js Tools for Visual Studio&#xff08;NTVS&#xff09;&#xff0c;受够了WebStorm输入法Bug的困扰&#xff0c;这下终于可以解脱了。以Pomelo为例&#xff0c;运行命令&#xff1a;pomelo init pomelo_test&#xff0c;生成一个默…