Leetcode 1609. 奇偶树 (二叉树BFS层序遍历判断条件)

U24时钟信号上升下降沿出现非单调性--简单分析 交换机U24时钟信号上升下降沿出现非单调性--简单分析 阅读详情

思路是BFS层序遍历,然后在遍历过程不断判断条件 

该写法比较简洁优雅。

class Solution {
public:
    bool isEvenOddTree(TreeNode* root) {
        queue<TreeNode*> qu;
        qu.push(root);
        int level = 0;
        while (!qu.empty()) {
            int size = qu.size();
            int prev = level % 2 == 0 ? INT_MIN : INT_MAX;
            for (int i = 0; i < size; i++) {
                TreeNode * node = qu.front();
                qu.pop();
                int value = node->val;
                if (level % 2 == value % 2) {
                    return false;
                }
                if ((level % 2 == 0 && value <= prev) || (level % 2 == 1 && value >= prev)) {
                    return false;
                }
                prev = value;
                if (node->left != nullptr) {
                    qu.push(node->left);
                }
                if (node->right != nullptr) {
                    qu.push(node->right);
                }
            }
            level++;
        }
        return true;
    }
};

CS1237卡尔曼滤波实战:如何用24位ADC实现电子秤级精度? 本文详细介绍了如何利用CS1237 24位ADC芯片结合卡尔曼滤波算法实现电子秤级精度测量。通过解析CS1237硬件特性、卡尔曼滤波原理及STM32驱动优化,提供了一套完整的解决方案,包括多通道支持、驱动代码实现和性能调优技巧,适用于工业测量和嵌入式开发领域。 阅读详情

相关推荐

GD32F470实战:如何用EXMC+SDRAM为LVGL打造超大内存池(附完整配置代码)

本文详细介绍了如何利用GD32F470的EXMC接口与SDRAM深度整合,为LVGL构建高性能内存解决方案。通过硬件架构设计、EXMC接口配置、高级内存管理策略及LVGL性能优化技巧,开发者可以突破微控制器内存限制,实现高分辨率显示和复杂动画效果。附完整配置代码,助力嵌入式GUI开发。

rrr55的博客 517

二叉树的层次遍历--leetcode习题总结

python实现二叉树的层次遍历,并使用两种写法,应用广泛!Leetcode上很多层次遍历的题都可以直接做了!!! 102. Binary Tree Level Order Traversal 429. N-ary Tree Level Order Traversal 199. Binary Tree Right Side View 103. Binary Tree Zigzag Level Order Traversal

rainMan的博客 909

使用 Simulink 进行电力电子系统的大信号模型仿真

电力电子系统(Power Electronics System)包括各种功率转换器(如 DC-DC 转换器、逆变器等)。这些设备中的关键组件(如 MOSFET、IGBT、电容器、电感器等)不仅影响系统的性能,还直接关系到系统的稳定性、效率和可靠性。因此,在设计阶段进行详细的建模和仿真至关重要。大信号模型仿真的目的是通过模拟系统在非线性条件下的真实行为,评估其瞬态响应、稳态性能以及对不同负载和输入电压变化的响应。通过本教程,我们介绍了如何使用 Simulink 进行电力电子系统的大信号模型仿真。背景介绍。

xiaoheshang_123的博客 283

leetcode1609. 奇偶

leetcode1609. 奇偶 这道题只要层序遍历二叉树就好,在遍历的过程中判断每层的点是否满足题目给出的条件

lucky__peng的博客 381

LeetCode1609题 - 奇偶

LeetCode1609题 - 奇偶

流水账 652

Leetcode 1609 奇偶

题目 如果一棵二叉树满足下述几个条件,则可以称为 奇偶二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推。 偶数下标 层上的所有节点的值都是 奇 整数,从左到右按顺序 严格递增 奇数下标 层上的所有节点的值都是 偶 整数,从左到右按顺序 严格递减 给你二叉树的根节点,如果二叉树奇偶 ,则返回 true ,否则返回 false 。 解题思路   BFS和DFS都可以写,DFS有递归会涉及到重复遍历的过程,BFS的优势就体现出来了。但这里只贴了DF

博学 笃志 切问 近思 242

LeetCode 二叉树题目详解(第1500-最后)

题目描述:判断二叉树是否满足奇偶条件:偶数层所有节点值为奇数且严格递增,奇数层所有节点值为偶数且严格递减。题目链接:https://leetcode.cn/problems/even-odd-tree/ 难度等级:中等解题思路: 使用广度优先搜索(BFS)进行层次遍历。对于每一层,检查节点值是否满足条件:偶数层节点值必须为奇数且严格递增,奇数层节点值必须为偶数且严格递减。时间复杂度:O(n) - 遍历所有节点 空间复杂度:O(w) - 队列宽度,最坏情况下为O(n)

fengruxue的专栏 1104

二叉树层序遍历(广度优先搜索)基础概念与经典题目(Leetcode题解-Python语言)

二叉树的广度优先搜索即从上到下、从左到右地进行搜索,对于层序遍历(Level Order)问题,即依次遍历第一层节点、第二层节点…等,基本可以秒杀。 广度优先搜索是通过队列来实现的,python中优先用collections.deque,因为deque的 popleft() 比列表的 pop(0) 快不少。 102. 二叉树层序遍历 import collections # leetcode里面可以去掉,下面都省略 class Solution: def levelOrder(self, roo

自动化研究生在读,此博客记录了我的学习与刷题经验,欢迎大家阅读交流 906

五月训练 Day17

文章目录0. Leetcode [LCP 44. 开幕式焰火](https://leetcode.cn/problems/sZ59z6/)分析与解答1. Leetcode [102. 二叉树层序遍历](https://leetcode.cn/problems/binary-tree-level-order-traversal/)分析与解答2. Leetcode [1609. 奇偶](https://leetcode.cn/problems/even-odd-tree/)分析与解答3. Leetcode

leapold_Z的博客 508

Leetcode刷题 2021.01.15

Leetcode刷题 2021.01.15Leetcode1029 两地调度Leetcode1609 奇偶Leetcode947 移除最多的同行或同列石头 Leetcode1029 两地调度 公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costsi。 返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。 明天要论文预答辩了,感觉都没时间刷题了,难道只坚持一个礼拜就要放弃了每日更新博客了(lll¬ω¬)。 这道题相通了编码还是容易

weixin_43447128的博客 292

五月刷题17——广度优先搜索

广度优先搜索

MYuertt9的博客 167

【第七章开始】算法笔记及拓展题 题解

OJ复习

weixin_45725137的博客 598

力扣(合并区间)

给定一组可能重叠或相邻的整数区间,合并所有重叠或端点相接的区间,返回不重叠的最小区间列表。例如输入 [[1,3],[2,6],[8,10],[15,18]],输出 [[1,6],[8,10],[15,18]]。核心是先按左端点升序排序,再单次线性扫描完成合并,避免暴力两两比较。

weixin_52811458的博客 299

LeetCode 155. 最小栈|Python 解法详解

这道题的关键是:使用主栈保存数据,辅助栈在每一层同步保存“截至当前位置的最小值”。理解这一点后,再结合边界条件检查,代码就能保持清晰且稳定。

a1250467048的博客 236

LeetCode 1. 两数之和 | 从暴力枚举到哈希表最优解 + 空间换时间思想全复盘

文章摘要 题目要求在数组中找到两数之和等于目标值的下标。核心思路是优化查找效率: 暴力法:双重循环枚举所有数对,时间复杂度O(),效率低但易实现。 哈希表优化:利用哈希表O(1)查找特性,遍历时存储已访问元素,每次计算差值并查询,时间复杂度降至O(n)。关键细节是先查后存,避免自匹配。 代码实现:哈希表法通过一次遍历完成,空间换时间,边界处理需注意空数组和不足两元素的情况。 常见错误:内层循环起始点、哈希表键值设计、立即返回结果等易错点需警惕。 面试要点:优先选择哈希表解法,解释与暴力法的差异,强调时间

yc2284238579的博客 255

LeetCode //MySQL - 1204. Last Person to Fit in the Bus

This SQL query solves the problem of finding the last person who can board a bus without exceeding the 1000 kg weight limit. The solution involves: Calculating a running total of weights ordered by boarding turn using a window function Filtering to only in

Made in Code 366

leetcode】153. 寻找旋转排序数组中的最小值js

本文介绍了在旋转排序数组中寻找最小值的二分查找算法。通过比较中间元素与数组末尾元素,可以确定最小值所在区间:若中间值大于末尾值,则最小值在右侧;否则在左侧或当前位置。文章提供了两种实现方式,第一种通过样例总结返回nums[l],第二种采用更标准的二分写法,确保循环结束时left==right。两种方法时间复杂度均为O(logn),适用于解决LeetCode相关题目。关键点在于利用旋转数组的特性缩小搜索范围。

2402_83244812的博客 150

LeetCode //C - 1203. Sort Items by Groups Respecting Dependencies

This problem involves sorting items with group constraints and dependency relations. The key steps are: Assign unique groups to items with no group (-1) Build dependency graphs for both items and groups Perform topological sorting on both graphs If both so

Made in Code 373

LeetCode hot100——最大子数组和

给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]123如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的求解。

weixin_42927227的博客 212

10.LeetCode算法习题讲解--滑动窗口--最大连续为一的个数

利用滑动窗口解决最大连续1的个数

Jammy_1的博客 219

栈和队列专题(三):LeetCode 622. 设计循环队列|数组环形复用 + front/rear 边界详解

本文详细讲解了循环队列的设计与实现,重点分析了如何利用数组实现环形结构以避免空间浪费。文章首先通过示例说明普通数组队列的"假溢出"问题,然后提出循环队列的解决方案。核心内容包括:1. 采用牺牲一个存储位置的方案区分队列空满状态;2. 明确front和rear指针的语义(front指向队首元素,rear指向下一个可插入位置);3. 使用取模运算实现下标的循环移动。文章完整实现了LeetCode 622题要求的全部接口,并分析了各种边界情况,特别是队尾元素的获取方法。最后对比了数组实现与链式

Luminousone的博客 470

LeetCode 3597.分割字符串

时间复杂度:O(n) 或 O(n∣Σ∣),其中 n 是 s 的长度,∣Σ∣=26 是字符集合的大小。空间复杂度:O(n) 或 O(n∣Σ∣)。只要当前段是唯一的,就将其加入段列表,标记为已经出现过,并从下一个下标开始构建新的段。因此,最终输出为 [“a”, “b”, “bc”, “c”, “cc”, “d”]。输出: [“a”,“b”,“bc”,“c”,“cc”,“d”]因此,最终输出为 [“a”, “aa”]。输入: s = “abbccccd”输入: s = “aaaa”输出: [“a”,“aa”]

tus00000的博客 221

中国移动联通电信手机号段归属地数据抓取与更新项目_中国移动中国联通中国电信手机号码归属地数据抓取程序与最新号段数据文件_提供最新手机号段归属地数据支持业务查询与开发应用_使用PHP.zip

中国移动联通电信手机号段归属地数据抓取与更新项目_中国移动中国联通中国电信手机号码归属地数据抓取程序与最新号段数据文件_提供最新手机号段归属地数据支持业务查询与开发应用_使用PHP.zip

AirEngine5760-10-FAT&CLOUD-V200R019C00SPC910.zip胖AP固件下载

AirEngine5760-10-FAT&CLOUD-V200R019C00SPC910.zip胖AP固件下载

上一篇: Leetcode 1078. Bigram 分词 (split分词,顺序便利匹配)
下一篇: Leetcode 825. 适龄的朋友 (双指针,单调性, 桶排序优化)
wwxy261
博客等级 码龄11年 1075粉丝 · 3690原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值