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

遍历树,记录x和y的深度和父节点。

class Solution {int xpar, xdep, ypar, ydep;public boolean isCousins(TreeNode root, int x, int y) {dfs(root.left, 1, x, y, root.val);dfs(root.right, 1, x, y, root.val);return (xpar != ypar) && (xdep == ydep);}    // 这个函数的作用就是找到x、y的父节点和深度//1、找到这两个节点(subnode.val==x ?)//2、记录深度 函数应该有一个变量来记录当前的dep,如果是x的话 把dep赋给全局变量xdep//3、记录父节点,有个变量par,如果是x的话 xpar=par//4、主函数在使用子函数的时候,需要把传入的变量搞清楚 subnode、dep、parpublic void dfs(TreeNode subnode, int dep, int x, int y, int par) {if (subnode == null) {return;}if (subnode.val == x) {xpar = par;xdep = dep;} else if (subnode.val == y) {ypar = par;ydep = dep;} else {dfs(subnode.left, dep+1, x, y, subnode.val);dfs(subnode.right, dep+1, x, y, subnode.val);}}
}

二叉树的堂兄弟节点993相关推荐

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

    leetcode 993[二叉树的堂兄弟节点] 这道题给出二叉树root,x和y,要解决的问题是在树中找到x和y,并且确定它们是否为堂兄弟节点的关系. 题目链接 https://leetcode-cn ...

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

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   在二叉树中,根节点位于 ...

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

    二叉树的堂兄弟节点 题目 二叉树的堂兄弟节点(力扣:993) 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处. 如果二叉树的两个节点深度相同,但父节点不同,则它 ...

  4. 二叉树的堂兄弟节点-c语言

    二叉树的堂兄弟节点-c语言 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处. 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点. 我们给出 ...

  5. LeetCode题解——二叉树的堂兄弟节点

    LeetCode题解--二叉树的堂兄弟节点 题目介绍 解题思路 这题考察的就是树的遍历,其中带有2个条件遍历树 第一个条件记录下x和y出现的深度 第二个条件记录下x和y的父节点 当父节点不同xy深度相 ...

  6. LeetCode 993. 二叉树的堂兄弟节点(层序遍历)

    文章目录 1. 题目 2. 解题 2.1 层序遍历 2.2 递归查找 1. 题目 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处. 如果二叉树的两个节点深度相同 ...

  7. leetcode——第993题——二叉树的堂兄弟节点

    题目: 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处. 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点. 我们给出了具有唯一值的二叉树 ...

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

    在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处. 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点. 我们给出了具有唯一值的二叉树的根节点 r ...

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

    截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载 下载链接:https://pan.baidu.com/s/1hj ...

最新文章

  1. java axis2 开发_基于Apache axis2开发Java Web服务
  2. python csv模块心得
  3. 【大数据】SparkSql 连接查询中的谓词下推处理 (一)
  4. 通过简单例子 | 快速理清 UML类图中六大关系
  5. linux的strace命令(详解)
  6. Spring-data-jpa常用方法
  7. Linux学习之SAMBA共享(无密码)
  8. 基础 | 零散的MySql基础记不住,看这一篇就够啦
  9. swift笔记1-点语法
  10. Mybatis Plus逻辑删除
  11. greenplum配置高可用_GREENPLUM介绍之数据库管理(七)- 配置数据库高可用性之master镜像 | 学步园...
  12. 数值分析方程求根实验matlab,基于matlab的数值分析( 非线性方程求根)上机实验报告1...
  13. 【NOIP1997】【codevs1219】骑士游历
  14. 扩展二叉树 (根据特殊的前序遍历建树)
  15. tp5 点击刷新验证码
  16. Excel: 批量去除空格的函数——trim函数, substitute函数,clean函数
  17. 清华姚班和100个“张小龙”| 中国AI天才养成计划
  18. 计算机快捷键里面不显示桌面,桌面显示,显示桌面快捷键不见了
  19. 与小卡特一起学python 第18章 一种新的输入-事件
  20. 完美解决OneNote for Windows 10无法同步问题

热门文章

  1. Java 能创建多少线程
  2. 数据库那些事--greenDAO增删查改
  3. HTTP协议中 POST和GET的区别
  4. 微信小程序 涉及播放视频解决办法(证书or腾讯视频插件)
  5. 高一被清华姚班录取,高三委拒谷歌 offer,一个重度网瘾少年到理论计算机科学家的蜕变!...
  6. 逻辑智力测试题内附详细答案
  7. 使用muscle多序列比对
  8. 使用 tree 命令生成目录
  9. 如何切换不同的python环境
  10. 理论学习材料:如何解读小学数学教材