1609.奇偶数
目录
一、题目
二、代码
三、完整测试代码
一、题目
1609. 奇偶树 - 力扣(LeetCode)


二、代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:
bool LevelOrder(TreeNode* root)//层序遍历
{deque<TreeNode*> q;if (root == nullptr){return false;}q.push_back(root);int level = 0;//层次while (!q.empty())//循环进队{int n = q.size();int mark = level % 2 == 0 ? INT_MIN : INT_MAX;while (n--){TreeNode* front = q.front();q.pop_front();if (front != nullptr){if (level % 2 == 0)//偶数层{if (front->val % 2 == 0)//节点的值不是奇数{return false;}else//节点的值是奇数{if (mark < front->val){mark = front->val;}else{return false;}}}else//奇数层{if (front->val % 2 != 0)//不是偶数{return false;}else{if (mark > front->val){mark = front->val;}else {return false;}}}q.push_back(front->left);q.push_back(front->right);}}level++;}return true;
}bool isEvenOddTree(TreeNode * root){return LevelOrder(root);}};
三、完整测试代码
#include<iostream>
#include<deque>
using namespace std;
struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};bool LevelOrder(TreeNode* root)//层序遍历
{deque<TreeNode*> q;if (root == nullptr){return false;}q.push_back(root);int level = 0;//层次while (!q.empty())//循环进队{int n = q.size();int mark = level % 2 == 0 ? INT_MIN : INT_MAX;//标记while (n--){TreeNode* front = q.front();q.pop_front();if (front != nullptr){if (level % 2 == 0)//偶数层{if (front->val % 2 == 0)//节点的值不是奇数{return false;}else//节点的值是奇数{if (mark < front->val){mark = front->val;}else{return false;}}}else//奇数层{if (front->val % 2 != 0)//不是偶数{return false;}else{if (mark > front->val){mark = front->val;}else {return false;}}}q.push_back(front->left);q.push_back(front->right);}}level++;}return true;
}bool isEvenOddTree(TreeNode* root)
{return LevelOrder(root);
}int main()
{TreeNode* root = new TreeNode(1);TreeNode* Node1 = new TreeNode(10);TreeNode* Node2 = new TreeNode(4);TreeNode* Node3 = new TreeNode(7);root->left = Node1;root->right = Node2;Node1->left = Node3;Node1->right = nullptr;Node2->left = nullptr;Node2->right = nullptr;Node3->left = nullptr;Node3->right = nullptr;int i = 0;cout << isEvenOddTree(root);return 0;
}
相关文章:
1609.奇偶数
目录 一、题目 二、代码 三、完整测试代码 一、题目 1609. 奇偶树 - 力扣(LeetCode) 二、代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0),…...
c++--异常
1.什么是异常 对于C语言来说,处理错误的机制有: 1.终止程序:如assert,缺陷,如发生内存错误,除0之外发生程序终止,用户无法接受。 2.返回错误码:对于大型程序来说,需要…...
ArcGIS 利用cartogram插件制作变形地图
成果图 注:本图数据并不完全对,只做为测试用例 操作 首先需要下载一个插件cartogram 下载地址在这里 https://www.arcgis.com/home/item.html?idd348614c97264ae19b0311019a5f2276 下载完毕之后解压将Cartograms\HelpFiles下的所有文件复制到ArcGIS…...
Mybatis批量插入方式有哪些
MyBatis的批量插入有多种写法,下面我将列出一些常见的批量插入写法 方式列表 使用XML配置文件进行批量插入:在XML映射文件中使用<insert>标签,并通过foreach标签迭代批量数据,然后在SQL语句中使用VALUES关键字。使用Java注…...
前端框架学习-React(一)
React 应用程序是由组件组成的。 react 程序是用的jsx语法,使用这种语法的代码需要由babel进行解析,解析成js代码。 jsx语法: 只能返回一个根元素 所有的标签都必须闭合(自闭和或使用一对标签的方式闭合) 使用驼峰式…...
Android Studio实现解析HTML获取图片URL将图片保存到本地
目录 效果activity_main.xmlMainActivityImageItemImageAdapter 效果 项目本来是要做成图片保存到手机然后读取数据后瀑布流展示,但是有问题,目前只能做到保存到手机 activity_main.xml <?xml version"1.0" encoding"utf-8"?…...
单例模式的理论与实践
本文实践代码仓库:https://github.com/goSilver/my_practice 文章目录 一、定义二、作用三、实现3.1 饿汉式3.2 懒汉式3.3 双重检查3.4 静态内部类3.5 枚举 四、总结4.1 单例存在哪些问题?4.2 单例有什么替代解决方案? 一、定义 单例模式是一…...
深入了解MongoDB:灵活的文档型数据库与应用案例
什么是MongoDB ? MongoDB 是由C语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个…...
【HarmonyOS北向开发】-01 HarmonyOS概述
飞书原文链接-【HarmonyOS北向开发】-01 HarmonyOS概述https://fvcs2dhq8qs.feishu.cn/docx/TDf2d2KMaoPSUUxnvg2cASDdnCe?fromfrom_copylink...
Node.js入门
安装 前往官网下载即可:https://nodejs.org/zh-cn 安装之后检查是否成功并查看版本,winr --> 输入cmd --> 确认 --> 进入命令提示符窗口 --> 输入 node -v --> 出现以下就代表成功了,这也是node的版本号 什么是Node.js Nod…...
指针、数组、sizeof、strlen相关知识与练习题目
目录 前提回顾🔍: 关于一维数组🤮: 关于二维数组😀: sizeof与strlen🐕: sizeof🏀: strlen🐓: 相关练习📚:…...
分类预测 | MATLAB实现WOA-CNN-BiLSTM-Attention数据分类预测
分类预测 | MATLAB实现WOA-CNN-BiLSTM-Attention数据分类预测 目录 分类预测 | MATLAB实现WOA-CNN-BiLSTM-Attention数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现WOA-CNN-BiLSTM-Attention数据分类预测,运行环境Matlab2023b及以上…...
MyBatis动态SQL:打造灵活可变的数据库操作
目录 if标签trim标签where标签set标签foreach标签 动态SQL就是根据不同的条件或需求动态地生成查询语句,比如动态搜索条件、动态表或列名、动态排序等。 if标签 在我们填写一些信息时,有些信息是必填字段,有的则是非必填的,这些…...
nginx代理请求到内网不同服务器
需求:之前用的是frp做的内网穿透,但是每次电脑断电重启,路由或者端口会冲突,现在使用汉土云盒替换frp。 需要把公网ip映射到任意一台内网服务器上,然后在这台内网服务器上用Nginx做代理即可访问内网其它服务器…...
【C# 基础精讲】文件读取和写入
文件读取和写入是计算机程序中常见的操作,用于从文件中读取数据或将数据写入文件。在C#中,使用System.IO命名空间中的类来进行文件读写操作。本文将详细介绍如何在C#中进行文件读取和写入,包括读取文本文件、写入文本文件、读取二进制文件和写…...
设计模式——经典单例
0、核心要素 // 构造、析构函数私有化(一个进程只允许一个对象存在) // 对象私有化、静态化(因为接口静态函数) // 对象调用接口静态化(因为静态函数脱离了类对象,可以直接调用) 一、懒汉 唯…...
【HarmonyOS】鸿蒙应用获取华为帐号手机号码步骤(API7及以下)
【写在前面】 本文主要介绍使用API7及以下版本开发HarmonyOS应用时,通过华为帐号SDK和云侧接口获取手机号码的主要开发步骤,注意:开发过程中集成的华为帐号SDK仅支持API7及以下版本的HarmonyOS应用。 【前提准备】 1、HarmonyOS应用已申请获…...
webpack相关面试
运行 npm run xxx 的时候发生了什么? npm run xxx的时候,首先会去项目的package.json文件里找scripts 里找对应的xxx,然后执行 xxx的命令 npm i 的时候,npm 读到该配置后,就将该文件软链接到 ./node_modules/.bin 目录…...
如何使用ChatGPT创建个性化的健身锻炼计划
ChatGPT广泛应用于各个行业,健身也不例外。 ChatGPT 在健身领域的一个常用案例是创建个性化的锻炼计划。 在要求 ChatGPT 创建锻炼计划时,简单地输入自己的目标和当前的健身水平是一个很好的开始。完成此操作后,你还可以使用其他提示和措施来…...
人工智能与云计算实训室建设方案
一、 人工智能与云计算系统概述 人工智能(Artificial Intelligence,简称AI)是一种模拟人类智能的科学和工程,通过使用计算机系统来模拟、扩展和增强人类的智能能力。人工智能涉及多个领域,包括机器学习、深度学习、自然…...
如何在个人设备上节省97%存储空间:革命性RAG系统LEANN的完整指南
如何在个人设备上节省97%存储空间:革命性RAG系统LEANN的完整指南 【免费下载链接】LEANN RAG on Everything with LEANN. Enjoy 97% storage savings while running a fast, accurate, and 100% private RAG application on your personal device. 项目地址: http…...
新手入门:基于快马平台复现pencil设计工具基础功能学前端
最近在学前端开发,想找个能动手实践的项目练练手。朋友推荐了pencil官网的设计工具,但直接看源码有点复杂。后来发现用InsCode(快马)平台可以快速复现基础功能,特别适合新手理解画布操作和事件处理。下面分享我的学习过程: 画布搭…...
J1712-粒状巧克力糖包装机设计【颗粒状糖果包装机设计】【三维SW模型+6张CAD图纸+说明】
J1712-粒状巧克力糖包装机设计【颗粒状糖果包装机设计】【三维SW模型6张CAD图纸说明】 传送带电机刚启动那会儿,总有几个巧克力豆卡在导流槽边缘。凌晨三点的实验室里,我盯着SolidWorks里旋转的螺旋送料机构模型,突然意识到——这玩意儿得做成…...
Spring Security实战:Bcrypt加密算法在用户密码存储中的正确使用姿势(附完整代码)
Spring Security实战:Bcrypt加密算法在用户密码存储中的正确使用姿势(附完整代码) 在当今数字化时代,用户密码安全已成为系统开发中最基础也最关键的一环。作为开发者,我们经常面临一个核心问题:如何在数据…...
只要一行代码,瞬间搭建 Web 服务器 python -m http.server 8000
只要一行代码,瞬间搭建 Web 服务器 python -m http.server 8000 目录 只要一行代码,瞬间搭建 Web 服务器 python -m http.server 8000 1. 核心机制:内置的 `http.server` 模块 2. 为什么它能“求生”,但不能“生产”? 🚀 并发处理能力 (Concurrency) 🛡️ 安全性 (Se…...
FreeRtos——24、STM32中断处理体系及软件定时器按键消抖
第一节:STM32中断处理体系结构1.中断处理路径:2.NVIC中断控制器的中断优先级:2.1 中断号:在NVIC中对于硬件产生的任何一个中断都分配了一个中断号,中断号是一个唯一的标识符,用于识别每个外设设备的中断。NVIC使用中断号来配置中断…...
释放创意:Mi-Create让智能表盘设计触手可及
释放创意:Mi-Create让智能表盘设计触手可及 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 问题发现:智能表盘设计的三重困境 在智能穿…...
告别云端:在百元ESP32-S3上实现离线婴儿哭声识别,隐私与实时性我全都要
边缘智能革命:用ESP32-S3打造零隐私风险的婴儿监护终端 当科技与育儿需求碰撞,我们面临一个核心矛盾:如何在不牺牲隐私的前提下实现智能化监护?传统方案依赖云端处理,却让敏感数据暴露在传输与存储环节。本文将揭示一种…...
5分钟解锁跨平台微信:Docker容器化方案全攻略
5分钟解锁跨平台微信:Docker容器化方案全攻略 【免费下载链接】docker-wechat 在docker里运行wechat,可以通过web或者VNC访问wechat 项目地址: https://gitcode.com/gh_mirrors/docke/docker-wechat 还在为Linux系统无法使用微信而烦恼吗…...
Cosmos-Reason1-7B部署教程:Docker镜像免配置+7860端口快速启用
Cosmos-Reason1-7B部署教程:Docker镜像免配置7860端口快速启用 1. 项目概述 Cosmos-Reason1-7B是NVIDIA推出的7B参数多模态视觉语言模型(VLM),专注于物理理解和思维链推理能力。作为Cosmos世界基础模型平台的核心组件,它能够处理图像和视频…...
