当前位置: 首页 > news >正文

LeetCode题解:993. 二叉树的堂兄弟节点,BFS,JavaScript,详细注释

原题链接:
https://leetcode.cn/problems/cousins-in-binary-tree/

解题思路:

  1. 使用队列进行BFS搜索,同时保存每个节点,以及其深度和父节点信息。
  2. 当搜索到xy时,对比深度和父节点,如果满足要求,则表示找到了堂兄弟节点。
/*** @param {TreeNode} root* @param {number} x* @param {number} y* @return {boolean}*/
var isCousins = function (root, x, y) {// 使用队列进行BFS搜索,每个元素保存的值是当前节点、节点深度、父节点let queue = [[root, 1, null]]// 保存搜索到的x和y节点信息let result = []// 不断搜索直到队列被清空,表示完成了对二叉树的搜索。while (queue.length) {// 将队列元素出队,获取相关信息const [node, depth, parent] = queue.shift()// 当查找到x或y的值时,将相应的信息保存到resultif (node.val === x || node.val === y) {result.push([node, depth, parent])}// 如果result的长度为2,表示已查找到x和yif (result.length === 2) {// 如果x和y的深度相等,父节点不同,表示找到了堂兄弟节点if (result[0][1] === result[1][1] && result[0][2] !== result[1][2]) {return true}return false}// 将当前节点的左右子节点入队,继续搜索node.left && queue.push([node.left, depth + 1, node])node.right && queue.push([node.right, depth + 1, node])}
};
http://www.lryc.cn/news/215807.html

相关文章:

  • 在python中加载tensorflow-probability模块和numpy模块
  • t2017递推2猴子摘桃
  • 呼吸灯【FPGA】
  • Codeforces 1855E 数学期望 + DP
  • 5-1CComplex运算符重载为友元
  • Vue3.0 watch和watchEffect监听器:VCA
  • 1360. 日期之间隔几天
  • ubuntu配置 Conda 更改默认环境路径
  • 华山编程培训中心——工业相机飞拍
  • linux 释放缓存命令并做成定时任务
  • 求解一个整数中含多少个1
  • js编写一个函数判断所有数据类型
  • Python对于时间相关模块的学习记录(time,datetime等模块)
  • 【C#】获得所有可见窗口信息
  • ffmpeg的基本功能介绍
  • QECon大会亮相产品,支持UI自动化测试?RunnerGo
  • Linux开关机相关的命令解析
  • C++二分查找算法的应用:俄罗斯套娃信封问题
  • redis如何保证和mysql数据的一致性
  • SpringBoot整合Redisson,赶紧整起来!
  • 测试Whisper效果
  • Seata 四种事务模式
  • 超好用的IDEA插件推荐,写完代码直接调试接口
  • 发送post请求、携带cookie、响应对象、高级用法
  • JMeter接口测试性能测试
  • MongoDB——MongoDB删除系统自带的local数据库
  • 【LeetCode刷题-链表】--203.移除链表元素
  • Microsoft Dynamics 365 CE 扩展定制 - 3. SDK企业功能
  • 人工智能基础_机器学习016_BGD批量梯度下降求解多元一次方程_使用SGD随机梯度下降计算一元一次方程---人工智能工作笔记0056
  • 硬件测试(二):波形质量