力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

通过树的边序列建立一颗孩子-兄弟结点的二叉树  自上而下输入边来建立树的存储结构(例如#A,AB,AC,BD,##),求树的深度。 立即下载

993.二叉树的堂兄弟节点

https://leetcode-cn.com/problems/cousins-in-binary-tree/

难度:简单

题目:

在二叉树中,根节点位于深度 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

分析

这是一道标准的二叉树递归搜索问题,当然本人更习惯使用DFS解题。
首先,根据题目定义好的TreeNode可以获取到当前节点的值,以及左子树和右子树。
我们初始化传入节点,父节点(root没有父节点,传自身),以及最大深度(初始为0)。
遍历过程中比较x,y的数值,并记录深度和父节点,当节点不存在返回即可。

解题:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right

class Solution:
    def isCousins(self, root, x, y):
        result_x = []
        result_y = []
        def dfs(node,parent,deep):
            if not node:
                return
            nonlocal result_x, result_y
            if node.val == x:
                result_x = [parent,deep]
            elif node.val == y:
                result_y = [parent,deep]
            dfs(node.left,node,deep + 1)
            dfs(node.right,node,deep + 1)
        dfs(root,root,0)
        return result_x[0] != result_y[0] and result_x[1] == result_y[1]

欢迎关注我的公众号: 清风Python,带你每日学习Python算法刷题的同时,了解更多python小知识。

我的个人博客:https://qingfengpython.cn

力扣解题合集:https://github.com/BreezePython/AlgorithmMarkdown

如何用谷歌插件Apollo.io高效开发客户?手把手教你避开常见坑点 本文详细介绍了如何利用谷歌插件Apollo.io高效开发外贸客户,包括核心功能解析、免费额度最大化利用策略、多插件协同技巧以及常见陷阱规避方法。通过Apollo.io的智能匹配算法和庞大数据库,外贸从业者可以精准锁定目标客户,提升开发效率。 阅读详情

相关推荐

利用DRONEKIT-SITL + MAVPROXY + QGroundControl模拟飞行

dronekit: 一种用于无人机控制的python库。 dronekit-sitl:一种本地仿真工具,相当于本地虚拟化了一个无人机。 mavproxy:数据转发软件(类似于插线板的感觉,一个输入,多个相同的输出)。打开一个Anaconda prompt 首先激活相应的环境 然后运行如下命令: 保持2中的Anaconda prompt处于运行状态,另打开一个Anaconda prompt窗口,运行如下命令: tcp:127.0.0.1:5760: SITL默认端口,作为mavproxy的输入,把输入数据转发

Done___的博客 4344

力扣每日一题:993. 二叉树的堂兄弟节点

目录题目:993. 二叉树的堂兄弟节点示例1示例2示例3提示:解题思路解题代码(1)层序遍历(BFS)(2)先序遍历(DFS) 题目:993. 二叉树的堂兄弟节点 难度: 简单 题目: 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否

aruewds的博客 365

图像相似度的评价指标 : FID(Fréchet Inception Distance)

FID(Fréchet Inception Distance) 是用来计算真实图像与生成图像的特征向量间距离的一种度量。如果FID值越小,则相似程度越高。最好情况即是FID=0,两个图像相同。 实际计算: 参考链接:https://machinelearningmastery.com/how-to-implement-the-frechet-inception-distance-fid-from-scratch/ # example of calculating the frechet inceptio

weixin_43723625的博客 1万+

力扣993 二叉树堂兄弟节点 递归+DFS

1、 2、 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int xdepth=-1; i

小吕的博客 310

Qt 调用YOLO模型(代码)

本文介绍了如何在 Qt C++ 环境中集成 YOLO 模型进行目标检测,包括模型封装、界面设计和实时处理等关键步骤。通过这种方法,你可以快速开发出具有目标检测功能的 Qt 应用程序,应用于监控系统、机器人视觉、图像分析等多个领域。

轩宇的博客 260

2025.05.28【读书笔记】|如何用SILVA和RFAM数据库高效去除rRNA污染

摘要: 在Ribo-seq等测序数据分析中,清除rRNA污染对结果准确性至关重要。仅使用SILVA数据库可能遗漏5S rRNA污染,建议结合RFAM数据库(特别是RF00001家族)全面清除。操作要点包括:下载两库序列、将RNA碱基U替换为DNA的T、合并序列建立索引,使用bowtie2过滤rRNA reads。注意U/T转换是关键,否则会导致比对失败。该方法能有效提升数据清洁度,为后续分析奠定基础。

980

每日一题 力扣993.二叉树的堂兄弟节点

深度优先搜索遍历,使用两类四个变量存储x,y两个值的深度以及父节点,遍历函数中传入该节点、父节点、深度以及要遍历寻找的两个数,找到则放入存储。最后判断,当且仅当深度相同且父节点不同时,返回True,否则返回False。我们给出了具有唯一值的二叉树的根节点。对应的节点是堂兄弟节点时,才返回。如果二叉树的两个节点深度相同,但。,以及树中两个不同节点的值。在二叉树中,根节点位于深度。的节点的子节点位于深度。

kawhixiao的博客 456

Open3D 三维重建-Delaunay Triangulation (德劳内三角剖分)

德劳内三角剖分(Delaunay Triangulation)是一种用于从一组点生成三角形网格的算法。它的特点是使得生成的三角形尽量接近等边三角形,即最大化最小角度,避免生成细长的三角形。

纵马踏花向自由 2505

深入探索二叉树的堂兄弟节点(Leetcode)

LeetCode上的两道关于二叉树的堂兄弟节点问题

amikellt911的博客 516

Thor芯片部署

英伟达Jetson Thor芯片性能分析与应用现状 摘要:英伟达最新发布的Jetson Thor芯片基于Blackwell架构,官方宣称AI算力达2070TFLOPS(FP4),较前代Orin提升7.5倍,配备14核Arm CPU和128GB内存。然而实际量产版算力缩水至700TOPS,且因4nm制程良率问题多次延期至2025-2026年交付。该芯片支持FP4/FP8量化、Transformer引擎等先进特性,适用于自动驾驶、机器人等边缘AI场景,但受供应链限制,国内厂商倾向自研方案。开发者可通过JetPa

xiaomu_347的博客 436

SAP UI5 主题设置全解析:从启动参数到运行时切换、跨域白名单与事件监听

SAP UI5主题体系深度解析:从配置到切换的完整指南 摘要:SAP UI5主题机制远不止CSS换肤,其工程化实践涵盖启动配置、运行时API切换、跨库路径映射及安全管控等关键环节。通过bootstrap标签或URL参数设置初始主题,运行时可用Theming.setTheme无刷新切换。自定义主题需配置theme-roots路径,跨域加载需声明sap-allowed-theme-origins白名单。主题切换完成后会触发applied事件,适合执行视觉同步操作。该体系支持多品牌适配、集中式主题管理,在Fior

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 328

【力扣每日一题】力扣993二叉树的堂兄弟节点

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

qq_56460466的博客 414

当C#遇见声音魔法:从麦克风到文字的0.1秒奇幻漂流

为什么选300Hz?因为人声基频通常在85-255Hz,但清脆的“啊”可能到2kHz,所以300Hz是安全区!(参考知识库[1])

墨夶的博客 366

[20210517]LeetCode每日一题 - 993. 二叉树的堂兄弟节点

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

全栈攻城狮? 495

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

2024.2.8力扣每日一题——二叉树的堂兄弟节点

2024.2.8 力扣每日一题 二叉树的堂兄弟节点 层序遍历 深度优先遍历

weixin_42075274的博客 523

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

993. 二叉树的堂兄弟节点 题目描述 在二叉树中,根节点位于深度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,n

m0_46334316的博客 887

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

LeetCode 每日一题 :993. 二叉树的堂兄弟节点 原题链接 分析: 判断两个节点是否为堂兄弟节点就需要判断它们的父节点是否不同以及它们的高度是否相同。那么问题就变为了求两个节点的父节点及其高度。使用深度优先遍历这棵树即可。 代码 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; *

w_weirdo的博客 209

993. 二叉树的堂兄弟节点

2021-05-17 LeetCode每日一题 链接:https://leetcode-cn.com/problems/cousins-in-binary-tree/ 标签:树、深度优先搜索、广度优先搜索。 题目 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。 只有与值 x 和 y 对应的节点是堂兄

秃头哥编程 270

[力扣每日习题][993] 二叉树的堂兄弟节点 2024.02.08

题意很简单,每个节点都是独一无二的,我们需要从根节点开始模拟遍历,进行根节点判空,若为空返回即可,不为空判断其值(val)是否为题中给出的x或y值,若相等,更新其深度与父亲,若不等,则分别对左子树和右子树进行循环遍历。为了方便调用,我们需要自定义DFS函数,其参数为根节点、x、y、深度、父亲值,遍历子树时,需要对深度进行+1操作。题解思路:DFS遍历,寻找深度与父节点。对应的节点是堂兄弟节点时,才返回。如果二叉树的两个节点深度相同,但。,以及树中两个不同节点的值。的节点的子节点位于深度。

小桃酥的博客 373

【每日刷题】Day72

1. 有序数组中出现次数超过 25% 的元素 2. 二叉树堂兄弟节点 3. 拥有最多糖果的孩子

2301_78022459的博客 854

LeetCode993. 二叉树的堂兄弟节点 / 剑指 Offer 44. 数字序列中某一位的数字 / 剑指 Offer 45. 把数组排成最小的数

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

windyjcy的博客 127

2021-11-10每日刷题打卡

一、Leetcode-993:二叉树的堂兄弟节点 1.1 问题描述 1.2 问题分析 1.3 问题解决 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(i

soulandlove的博客 5770

LeetCode每日一题——993. Cousins in Binary Tree

【代码】LeetCode每日一题——993. Cousins in Binary Tree。

叶卡捷琳堡的博客 577

Leetcode每日刷题【中】--Day 11

993. 二叉树的堂兄弟节点 DFS 树的中序遍历(中左右) 简单题 class Solution: def isCousins(self, root: TreeNode, x: int, y: int) -> bool: X_depth, X_p, X_F = None, None, False # 用来记录信息 分别是 树的深度,父亲节点,找到与否的bool值 Y_depth, Y_p, Y_F = None, None, False

weixin_52103757的博客 140

【题解】—— 2024年每日一道题目栏

LeetCode每日一道题目栏

ZShiJ的博客 1446

力扣每日一题:852.山脉数组的峰顶索引 喜迎收假,重拳出击....

852.山脉数组的峰顶索引 https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/solution/852shan-mai-shu-zu-de-feng-ding-suo-yin-9krsr/ 难度:简单 题目: 符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 <...

清风Python 5872
上一篇: 力扣每日一题:134.加油站 贪心+暴力双解
下一篇: 图解力扣:1442.形成两个异或相等数组的三元组数目
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值