二叉树相关题

news/2025/3/29 21:26:03/文章来源:https://www.cnblogs.com/94pm/p/18794518

1.二叉树最大深度

思路:

如果节点为空 (root === null),表示这一部分的深度是 0

如果节点不为空,递归地计算左子树和右子树的深度,然后返回左右子树深度的最大值加上 1(表示当前节点的深度)

代码实现:

function maxDepth(root) {// 基本情况:如果节点为空,深度为 0if (root === null) return 0;// 递归计算左子树和右子树的深度let leftDepth = maxDepth(root.left);let rightDepth = maxDepth(root.right);// 返回左右子树深度的最大值 + 1(当前节点的深度)return Math.max(leftDepth, rightDepth) + 1;
}

2.判断是否是对称二叉树

对称二叉树 是一种二叉树,其左右子树是镜像对称的。也就是说,树的左子树和右子树是完全相同的,只是左右节点的排列顺序是对称的。

判断二叉树是否对称

判断二叉树是否对称,通常可以通过递归的方法来实现。我们需要判断:

  1. 根节点的左子树和右子树是否对称。

  2. 如果左子树和右子树的左右孩子也是对称的,那么整个树就是对称的。

对称的二叉树

 

非对称的

 

function isSymmetric(root) {// 如果根节点为空,直接返回 trueif (root === null) return true;// 定义递归函数判断两个树是否是镜像对称function isMirror(t1, t2) {// 如果两个节点都为空,返回 trueif (t1 === null && t2 === null) return true;// 如果一个节点为空,另一个不为空,返回 falseif (t1 === null || t2 === null) return false;// 判断当前节点值是否相等,并递归判断左子树和右子树的对称性return (t1.val === t2.val) &&isMirror(t1.left, t2.right) &&isMirror(t1.right, t2.left);}// 判断根节点的左右子树是否是镜像对称的return isMirror(root.left, root.right);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906315.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BSRN:蓝图可分离残差网络实现高效图像超分辨率

单图像超分辨率(SISR)的最新进展已经实现了非凡的性能,但计算成本太高,无法应用于边缘设备。为了缓解这个问题,已经提出了许多新颖有效的解决方案。**具有注意力机制的卷积神经网络(CNN)因其效率和有效性而受到越来越多的关注**。但是,卷积运算中仍然存在冗余。在本文中…

给Web开发者的HarmonyOS指南01-文本样式

给Web开发者的HarmonyOS指南01-文本样式 本系列教程适合 HarmonyOS 初学者,为那些熟悉用 HTML 与 CSS 语法的 Web 前端开发者准备的。本系列教程会将 HTML/CSS 代码片段替换为等价的 HarmonyOS/ArkUI 代码。页面结构 HTML 与 ArkUI 在 Web 开发中,HTML 文档结构由<html>…

给Web开发者的HarmonyOS指南02-布局样式

给Web开发者的HarmonyOS指南02-布局样式 本系列教程适合鸿蒙 HarmonyOS 初学者,为那些熟悉用 HTML 与 CSS 语法的 Web 前端开发者准备的。本系列教程会将 HTML/CSS 代码片段替换为等价的 HarmonyOS/ArkUI 代码。布局基础对比 在Web开发中,我们使用CSS来控制元素的布局和样式。…

鸿蒙特效教程09-深入学习animateTo动画

鸿蒙特效教程09-深入学习animateTo动画本教程将带领大家从零开始,一步步讲解如何讲解 animateTo 动画,并实现按钮交互效果,使新手也能轻松掌握。效果演示 通过两个常见的按钮动画效果,深入学习 HarmonyOS Next 的 animateTo 动画,以及探索最佳实践。缩放按钮效果 抖动按钮…

鸿蒙特效教程10-卡片展开/收起效果

鸿蒙特效教程10-卡片展开/收起效果 在移动应用开发中,卡片是一种常见且实用的UI元素,能够将信息以紧凑且易于理解的方式呈现给用户。 本教程将详细讲解如何在HarmonyOS中实现卡片的展开/收起效果,通过这个实例,你将掌握ArkUI中状态管理和动画实现的核心技巧。 一、实现效果…

鸿蒙特效教程08-幸运大转盘抽奖

鸿蒙特效教程08-幸运大转盘抽奖本教程将带领大家从零开始,一步步实现一个完整的转盘抽奖效果,包括界面布局、Canvas绘制、动画效果和抽奖逻辑等。1. 需求分析与整体设计温馨提醒:本案例有一定难度,建议先收藏起来。在开始编码前,让我们先明确转盘抽奖的基本需求:展示一个…

ZGC圣经:ZGC垃圾回收器的原理、调优,ZGC 漏标的 分析与 研究

本文的 原始地址 ,传送门 本文的 原始地址 ,传送门 尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题:听说你是高手,说说,你的ZGC 怎…

20242312 2024-2025-2 《Python程序设计》实验一报告

20242321 2024-2025-2 《Python程序设计》实验报告 课程:《Python程序设计》 班级: 2423 姓名: 周梓濠 学号:20242312 实验教师:王志强 实验日期:2025年3月12日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境,配置VSCode; 2.配置gitee仓库,掌握git技能; 3.…

Tita:OKR 与项目管理、绩效一体化,助力企业实现目标驱动型发展

在当今竞争激烈的商业环境中,企业要想脱颖而出,实现可持续发展,明确目标、高效执行以及精准衡量结果至关重要。Tita 作为一款先进的管理平台,通过将 OKR(目标与关键成果法)与项目管理、绩效一体化相结合,为企业提供了一套完整的目标管理与执行解决方案,助力企业 “树目…

R语言绘图笔记—火山图

做个R语言绘图笔记,方便以后查看。 火山图:library(ggplot2) p1 <- ggplot(res, aes(x =log2FoldChange, y=-log10(pvalue), colour=sig)) + geom_point(size=2, shape = 16) + # 设置节点大小# 设置节点对应颜色scale_color_manual("significant" ,values=c(&…

git拉取代码到本地

1.先登入git,然后点击克隆,复制http地址:2.打开终端,输入 git clone http://xxxxxx3.然后在这个文件夹下就能看到复制的代码文件了4.可以把这个文件剪切到自己想要的路径下 5.pycharm打开就能用了

20232425 实验一 《python程序设计》实验报告

20232425 2024-2025-2 《Python程序设计》实验1报告 课程:《Python程序设计》 班级: 2324 姓名: 刘润民 学号:20232425 实验教师:王志强老师 实验日期:2025年3月12日 必修/选修: 公选课 一、实验内容 1、熟悉Python开发环境; 2、练习Python运行、调试技能;(编写书中的…