尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
LeetCode:二叉树
文章目录572.另一棵树的子树662.二叉树最大宽度129.求根节点到叶子节点数字之和102.二叉树的层序遍历572.另一棵树的子树给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在返回 true 否则返回 false 。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。【思路】如果root所在树和subRoot所在树完全相同则直接返回true否则就分别判断root的左子树和右子树是否和subRoot所在树完全相同classSolution{public:boolisSametree(TreeNode*p,TreeNode*q){if(pnullptrqnullptr)returntrue;//终止条件if(pqp-valq-val){returnisSametree(p-left,q-left)isSametree(p-right,q-right);}else{returnfalse;//终止条件}}boolisSubtree(TreeNode*root,TreeNode*subRoot){if(!root){returnfalse;//终止条件}if(isSametree(root,subRoot)){returntrue;//终止条件}returnisSubtree(root-left,subRoot)||isSubtree(root-right,subRoot);}};662.二叉树最大宽度给你一棵二叉树的根节点 root 返回树的 最大宽度 。树的 最大宽度 是所有层中最大的 宽度 。每一层的 宽度 被定义为该层最左和最右的非空节点即两个端点之间的长度。将这个二叉树视作与满二叉树结构相同两端点间会出现一些延伸到这一层的 null 节点这些 null 节点也计入长度。【思路】完全二叉树节点编号特性根id左孩子2id右孩子2id1DFS遍历时记录每层第一个访问到的最左节点编号到vec不断更细最大值当前节点编号- 本层最左编号 1classSolution{private:intmaxW0;vectorintfirstIds;public:intwidthOfBinaryTree(TreeNode*root){dfs(root,1,0);returnmaxW;}voiddfs(TreeNode*node,intid,intdepth){if(nodenullptr)return;// 第一次到达这一层记录最左节点编号if(firstIds.size()depth){firstIds.push_back(id);}// 更新最大宽度maxWmax(maxW,id-firstIds[depth]1);// 遍历左右子树dfs(node-left,id*2,depth1);dfs(node-right,id*21,depth1);}};129.求根节点到叶子节点数字之和给你一个二叉树的根节点 root 树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字例如从根节点到叶节点的路径 1 - 2 - 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之和 。叶节点 是指没有子节点的节点。【思路】dfs深度优先遍历preSum * 10 node-val乘10是关键classSolution{public:intdfs(TreeNode*root,intpreSum){if(rootnullptr)return0;intsumpreSum*10root-val;//核心!if(root-leftnullptrroot-rightnullptr){returnsum;}else{returndfs(root-left,sum)dfs(root-right,sum);}}intsumNumbers(TreeNode*root){returndfs(root,0);}};102.二叉树的层序遍历给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点【思路】queue存放节点怎么区分每层BFS循环当队列queue为空时跳出建立一个临时vector用于存储当前层数据循环当前层循环次数为当前层的节点数!!!核心- 出队列首元素出队即为node- tmp存储- 添加子节点若node的左右子节点不为空则将其加入队列queue
RELATED

相关推荐

FRP内网穿透实战:从零部署稳定HTTPS隧道

FRP内网穿透实战:从零部署稳定HTTPS隧道

1. 项目概述:为什么FRP至今仍是内网穿透的“稳态选择”我第一次在客户现场用FRP打通一台藏在三层NAT后面的工业PLC时,是2021年冬天。那台设备连着工厂局域网,再穿一层防火墙,最后被运营商级NAT罩着——连ping都通不了。当时试了ng…

📅 2026/8/12 18:07:22
linux笔记归纳9:进程间通信

linux笔记归纳9:进程间通信

进程间通信 目录 进程间通信 一、进程间通信理解 1.1.进程间通信的概念 1.2.进程间通信的目的 1.3.进程间通信的方式 二、管道 三、匿名管道 3.1.匿名管道的概念 3.2.pipe函数 3.3.匿名管道的理解 3.4.实例代码 3.5.匿名管道的特性 3.6.四种通信情况 四、进程池…

📅 2026/7/22 11:33:24
Win11 24H2安装.NET 3.5的解决方案与兼容性处理

Win11 24H2安装.NET 3.5的解决方案与兼容性处理

1. Win11 24H2安装.NET 3.5的困境与解决方案最近在给一台预装Win11 24H2的新机器部署企业级应用时,遇到了一个典型问题:系统提示需要.NET Framework 3.5运行环境,但无论是通过控制面板的"启用或关闭Windows功能"还是DISM命令&#…

📅 2026/9/6 10:04:10
MORE NEWS

更多资讯

📰

基于YOLOv5与ResNet18的手骨X光片骨龄检测系统实践

简介:这套基于Python与YOLOv5的手骨骨龄检测项目,面向毕业设计、课程设计及项目开发场景,提供从数据处理、模型训练到结果演示的完整工程实践。资源共189个文件,整体约436.79MB,涵盖Python脚本(py&#xff…

📰

Docker生产环境应急处理指南:故障排查与常用命令速查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

多Rail NCCL排障指南:GPU-NIC亲和性、HCA选择与逐Rail验证

多张高速网卡并不会自动形成一个线性叠加的“大端口”。NCCL需要根据GPU、PCIe和网络拓扑构建Ring或Tree,再把通信分配到可用接口。任何一层映射不一致,都可能表现为某张网卡空闲、某条Rail过载,或者多节点扩展后带宽突然下降。第一步&#x…

📰

专科生AI论文软件实测:8款工具从选题到降重的搭配指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

嵌入式Linux Modbus RTU串口通信从配置到实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

二叉树递归四大经典问题解析与优化技巧

1. 二叉树递归的四大经典问题解析作为数据结构中最基础也最重要的非线性结构,二叉树在算法面试和实际工程中出现的频率极高。而递归作为处理二叉树最自然的方式,却常常成为初学者的噩梦。今天我们就来深度剖析二叉树递归中最容易踩坑的四个经典问题&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬