(刷题笔记) Leetcode 993. 二叉树的堂兄弟节点

ISA-95(S95)标准详解 ISA-95是制造业系统集成的“通用语言”,通过分层模型和信息流规范,打通企业计划层与设备控制层,成为实现数字化工厂的核心标准之一。其与ISA-88的协同应用,可进一步优化生产执行与资源管理的效率。标准,旨在解决企业商业系统(如ERP)与工业控制系统(如MES、SCADA)之间的集成问题。 阅读详情

题目

在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。

如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。

我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。

只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。

示例 1:
在这里插入图片描述
输入:root = [1,2,3,4], x = 4, y = 3
输出:false

示例 2:
在这里插入图片描述
输入:root = [1,2,3,null,4,null,5], x = 5, y = 4
输出:true

示例 3:
在这里插入图片描述

输入:root = [1,2,3,null,4], x = 2, y = 3
输出:false

提示:

二叉树的节点数介于 2 到 100 之间。
每个节点的值都是唯一的、范围为 1 到 100 的整数。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cousins-in-binary-tree

解题思路

说实话还是第一次写层序遍历,不会写,看了一下解答区,发现是用队列实现的。

前面写中序遍历这种都是用栈实现的,现在开始用队列了还不太习惯。

不过写二叉树这一块的题目好处就是能把栈队列树都学一遍。

这一题的思路就是判断同一层中是否有满足分别等于x和y的,然后排除掉是同一父节点的情况,剩下的就可以下结论是否是堂兄弟节点。

代码(C++)

/**
 * 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 isCousins(TreeNode* root, int x, int y) {

        if(root==NULL) return false;
        queue<TreeNode*> q;
        q.push(root);
        if(root->val==x||root->val==y) return false;

        while(!q.empty()){

            int qsz=q.size();
            bool isx=false;
            bool isy=false;
            for(int i=0;i<qsz;++i){

                TreeNode* node=q.front();
                q.pop();

                if(node->val==x) isx=true;
                if(node->val==y) isy=true;
                
                if(node->left&&node->right){
                    if(node->left->val==x&&node->right->val==y){
                        return false;
                    }
                    if(node->left->val==y&&node->right->val==x){
                        return false;
                    }

                }
                
                if(node->left) q.push(node->left);
                if(node->right) q.push(node->right);

            }

             if(isx&&isy) return true;


        }

        return false;
        
        
    }
};
西门子828D/840DSL数控机床产量数据采集实战:一个C#程序员的踩坑与填坑记录 本文详细记录了C#程序员在西门子828D/840DSL数控机床产量数据采集实战中的经验与教训。从硬件连接到软件配置,再到数据读取与异常处理,文章分享了工业现场编程的特殊挑战和解决方案,特别是针对数控系统的TCP/IP通信、PLC变量地址映射及数据解析等关键技术点。 阅读详情

相关推荐

MATLAB 论文复现——面向电量-调频-容量市场的数据中心园区算力及电力资源规划

如何在保证数据中心服务质量的前提下,考虑数据中心负荷转移特性,并对其进行合理规划,对降低数据中心规划总成本及提升新型电力系统灵活性均有显著意义。然后,根据不同电力市场的结算规则,研究了数据中心园区参与电量-调频-容量市场的方式和经济收益。在此基础上,以综合成本最小化为目标,优化数据中心园区发电机、储能的建设容量以及服务器的建设数量。最后,以阿里巴巴公开运行数据为例,证明考虑多元电力市场能够大大降低数据中心规划成本,激励数据中心园区投资建设更多灵活性资源,为电网提供有效的调频服务和容量支撑。

sjr1478的博客 667

Leetcode刷题之 【最近的请求次数】

1 题目 写一个 RecentCounter 类来计算特定时间范围内最近的请求。 请你实现 RecentCounter 类: RecentCounter() 初始化计数器,请求数为 0 。 int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。 保证每次对 ping 的调用都使用比之前更大的 t 值。 示例 1: 输入: [“RecentCoun

麦田里的守望者 417

内网环境下的高德地图离线化实战:从瓦片下载到交互功能集成

本文详细介绍了在内网环境中部署离线高德地图的完整实战方案。针对军工、能源、金融等对网络隔离与数据安全有严格要求的场景,文章核心解决了离线地图的两大基石:地图瓦片数据的高效下载与本地化,以及高德地图JS API的获取与插件集成。通过具体代码示例,进一步讲解了如何实现地图初始化、海量点标注与聚合、自定义图标及框选查询等核心交互功能,并分享了内网部署的路径配置、性能优化及法律合规等关键注意事项,为开发者在封闭网络环境下构建稳定、可控的地图应用提供了清晰指南。

Apple的专栏 394

数据结构--知识点16--搜索算法(二叉树)

文章目录一、树的概念1、特点2、树的术语3、树的种类4、树的存储与表示5、常见的树的应用场景二、二叉树1、概念2、性质 一、树的概念 树是一种抽象数据类型(ADT)或是视作这种抽象数据类型的数据结构 1、特点 每个节点有零个或多个子节点 没有父节点的节点称为根节点 每一个非根节点有且只有一个父节点 除了根节点外,每个子节点可以分为**多个不相交(因为都只有一个父节点)**的子树 2、树的术语 节点的度:一个节点含有的子树的个数称为该节点的度 树的度:一棵树中,最大的节点的度称为树的度 叶节点或终端节点

ANingL的博客 3543

空频、空时、空域、时域、频域抗干扰介绍

1、时域抗干扰:对时间域序列进行滤波,滤波系数h(n),采样序列不断进行输入与滤波系数卷积计算,得到响应输出;例如常用的FIR和IIR滤波器。 对于多窄带干扰噪声源和连续波干扰源有较好的处理效果,还可以解决多径问题; 可以通过在接收机前端处理中增加一个嵌入式块实现; 2、频域抗干扰:接收机不容易受到相对于接收机频带以外的强功率干扰; 通常为带通滤波和阻带滤波, 适用于窄带干扰噪声源,连续波干扰源以及较强的频带外干扰噪声源, 3、空域抗干扰:通过多个自适应天线按照特定组合成天线阵列,波束成形,针对

qq_43517907的博客 7305

生物信息学新手必看:MAFFT多序列比对从安装到实战(附参数优化技巧)

本文为生物信息学新手提供了MAFFT多序列比对工具的完整指南。从Linux环境下的安装部署,到核心算法策略(如FFT-NS-i、L-INS-i)的选择逻辑,再到空位罚分等关键参数的深度解析与优化技巧,手把手教你完成从原始序列到高质量比对结果的实战流程,为后续进化树构建等分析奠定坚实基础。

weixin_29230773的博客 485

leetcode刷题(20)——993. 二叉树的堂兄弟节点

在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。 示例 1: 输入:root = [1,2,3,4], x =...

一个码农的博客 358

从零搭建A股量化交易系统:开源框架选型与实战部署指南

本文详细介绍了从零搭建A股量化交易系统的完整流程,重点分析了开源框架VNPY和QMT的选型与实战部署。内容涵盖系统架构设计、策略开发、性能优化及实盘过渡方案,为开发者提供了一套完整的A股实盘量化交易解决方案,助力高效构建稳定可靠的量化交易系统。

sugar的博客 1275

Leetcode 993:二叉树的堂兄弟结点

题目描述 在二叉树中,根节点位于深度0处,每个深度为k的结点的子节点位于k+1处。如果二叉树的两个结点深度相同,但父节点不同,则他们是一对堂兄弟结点。我们给出了具体唯一值的二叉树的根节点root,以及树中两个不同祭祀按的值x和y。只有与x和y对应的结点是堂兄弟结点时,才返回true。否则,f返回false 示例1 输入:[1,2,3,4],x = 4,y = 3 输出:false 示例2...

weixin_35338624的博客 459

eNSP-交换机VLAN配置

VLAN

乌托托的博客 8808

12027.linux flash驱动之IS25LP01G/IS25WWP01G

一页:512字节 --> 扇区 4096字节 --> 块 32k,64k, 层层递进关系。

写给自己的笔记 2289

LeetCode 993. 二叉树的堂兄弟节点(C++、python)

在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。   示例 1: 输入:root = [1,2,...

qq_27060423的博客 727

【主题建模】一种基于深度学习的主题建模方法:BERTopic(实战篇)

BERTopic 是基于深度学习的一种主题建模方法。2018 年底,Devlin et al. 提出了 Bidirectional Encoder Representations from Transformers (BERT)。BERT 是一种用于 NLP 的预训练策略,它成功地利用了句子的深层语义信息。

Data · Model · Agent · Repeat 2万+

力扣993. 二叉树的堂兄弟节点

993. 二叉树的堂兄弟节点

LNsupermali的博客 989

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode 993. 二叉树的堂兄弟节点

截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载 下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ 提取码:6666 public boolean isCousins(TreeNode root, int x, int y) { //两个队列一个存放树的节点,一个存放节点对应的值 Queue<TreeNode> queue = n.

数据结构和算法 1429

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

⭐算法入门⭐《二叉树》简单07 —— LeetCode 993. 二叉树的堂兄弟节点

《二叉树》简单07 —— LeetCode 993. 二叉树的堂兄弟节点

英雄哪里出来 6172

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Leetcode.993 二叉树的堂兄弟节点

输入:root = [1,2,3,null,4,null,5], x = 5, y = 4。输入:root = [1,2,3,null,4], x = 2, y = 3。输入:root = [1,2,3,4], x = 4, y = 3。我们给出了具有唯一值的二叉树的根节点。如果二叉树的两个节点深度相同,但。对应的节点是堂兄弟节点时,才返回。的父结点也不相同,故 结点。在二叉树中,根节点位于深度。,以及树中两个不同节点的值。的节点的子节点位于深度。

感觉画质不如...原神的博客 870

【Leetcode_总结】993. 二叉树的堂兄弟节点 - python

Q: 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。   示例 1: 输入:root = [...

maka_uir的博客 503

Leetcode993:二叉树的堂兄弟节点

Leetcode993:二叉树的堂兄弟节点 题目描述:   1.二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。   2.如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。   3.我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。    思路:   昨天夜里12点还没睡,就打开Leetcode瞄了一眼今天的题目,乍一

qq_37297658的博客 325

leetcode993. 二叉树的堂兄弟节点

在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。 示例 1: 输入:root = [1,2,3,4], x =...

ShawDa's Blog 1040

LeetCode 993. 二叉树的堂兄弟节点——每日一题

本题主要考察了二叉树的遍历,可以使用 宽度优先搜索 在遍历的同时使用 map 记录每个节点的值、深度以及其父节点。遍历完成之后直接进行比较即可。

晴空๓ 704

【leetcode 993】【二叉树的堂兄弟节点】

leetcode 993【二叉树的堂兄弟节点】 这道题给出二叉树root,x和y,要解决的问题是在树中找到x和y,并且确定它们是否为堂兄弟节点的关系。 题目链接 https://leetcode-cn.com/problems/cousins-in-binary-tree/ 解题思路与代码思路: 队列实现、BFS 广度优先遍历每一层,存入队列中,判断x和y是否在同一层,如果在,就是判断是否为堂兄弟节点。在同一层中,只有相邻节点并且右边的节点的索引为奇数、左边节点索引为偶数时,才是同一个父节点。如果不满足上

zyuPp的博客 386

LeetCode993.Cousins in Binary Tree(二叉树的堂兄弟节点 )

993.Cousins in Binary Tree(二叉树的堂兄弟节点 )DescriptionDifficulty: easyExample 1:Example 2:Example 3:Note:分析参考代码 Description In a binary tree, the root node is at depth 0, and children of each depth k node ...

red_tongue的博客 466

二叉树的堂兄弟节点(2种实现方式)

二叉树的堂兄弟节点(力扣:993)

卜大爷的博客 2万+

leetcode -993 二叉树的堂兄弟节点 -java版

文章目录题目代码 题目 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。 示例 1: 输入:root = [1...

lingle1的博客 549

LeetCode-Python-993. 二叉树的堂兄弟节点

在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1处。 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。   示例 1: 输入:root = [1,2,3...

Keep Coding 1032
上一篇: (刷题笔记) leetcode 面试题 16.11. 跳水板
下一篇: (刷题笔记) Leetcode 513. 找树左下角的值
Lucky&Happy
博客等级 码龄10年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值