链式二叉树oj题
1.输入k ,找第k层节点个数
int TreeKlevel(BTNode*root,int k) {if (root == NULL) {return 0;}if (k == 1) {return 1;}return TreeKlevel(root->left, k - 1)+TreeKlevel(root->right, k - 1);
}
在这里我们要确定递归子问题,第一个就是NULL时返回,还有一个就是k=1时就是我们要找的层数。
2.输入一个数,查找该数,找到了返回其地址。
BTNode* TreeFind(BTNode* root, int x) {if (root == NULL) {return NULL;}if (root->val == x) {return root;}BTNode* ret1 = TreeFind(root->left, x);if (ret1)return ret1;BTNode* ret2 = TreeFind(root->right, x);if (ret2)return ret2;return NULL;
}
在这里我们需要弄明白的是,在某个开辟的栈帧中找到了该数据,直接返回其指针,是得不到它的地址的。
3.判断两棵树是相同的
bool isSametree(BTNode* root1, BTNode* root2) {//都为空if (root1 == NULL && root2 == NULL) {return true;}//其中一个为空if (root1 == NULL || root2 == NULL) {return false;}if (root1->val != root2->val) {//判断值是否相同return false;}return isSametree(root1->left, root2->left) &&isSametree(root1->right, root2->right);
}
4.判断是否为镜像/对称二叉树,也就是左右子树是否相同
bool _isSymmetric(BTNode* root1, BTNode* root2) {//根比较//左子树和右子树比较//右子树和左子树比较//都为空if (root1 == NULL && root2 == NULL) {return true;}//一个为空一个不为空if (root1 == NULL || root2 == NULL) {//短路求值return false;}if (root1->val != root2->val) {return false;}return _isSymmetric(root1->left, root2->right) &&_isSymmetric(root1->right, root2->left);
}
bool isSymmetri(BTNode* root) {return _isSymmetric(root->left, root->right);//将根的两个子树传递给子函数
}
5.在一棵树上找另一棵树
bool issubTree(BTNode* root, BTNode* subroot) {if (root == NULL)return false;if (root->val == subroot->val&& isSametree(root, subroot)) {//当遍历时发现根相同时才开始遍历比较//为了防止不止一处地方根相同且有一处根相同的地方并不完全相等,所以我们需要这两个条件同时成立才返回true.return true;}//遍历return issubTree(root->left,subroot) || issubTree(root->right,subroot);
}
这里与其他函数结合可以更好地解决问题。
相关文章:
链式二叉树oj题
1.输入k ,找第k层节点个数 int TreeKlevel(BTNode*root,int k) {if (root NULL) {return 0;}if (k 1) {return 1;}return TreeKlevel(root->left, k - 1)TreeKlevel(root->right, k - 1); } 在这里我们要确定递归子问题,第一个就是NULL时返回&…...
Curator 是一个开源工具为 Elasticsearch 集群设计,用于自动化索引的维护任务。
Elasticsearch 使用 Curator 进行索引生命周期管理是一种常见的做法,Curator 是一个开源的 Python 工具,专为 Elasticsearch 集群设计,用于自动化索引的维护任务。以下是使用 Curator 进行索引生命周期管理的一些关键步骤和概念: …...
STM32-PWR和WDG看门狗
本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. PWR1.1 PWR简介1.2 电源框图1.3 上电复位和掉电复位1.4 可编程电压监测器1.5 低功耗模式1.6 模式选择1.7 睡眠模式1.8 停止模式1.9 待机模式1.10 库函数 2. WDG看门狗2.1 WDG简介2.2 IWDG框图2.3 IWDG键寄存器2.4 …...
C++循环队列 经典示例
循环队列(Circular Queue),又称环形缓冲区,是一种常用的数据结构,特别适用于资源有限的场合,比如操作系统中的任务调度、网络数据缓冲等。循环队列在数组的基础上实现,逻辑上首尾相连࿰…...
【程序大侠传】大表分库分表切换数据库类型导致pagehelper生成sql语法报错
前序 代码剑宗等级分明,其门下弟子等级划分如下: 入门弟子 刚刚拜入代码剑宗,学习基础编程语言和基本剑法(语法和基础概念)。他们的代码还显得生涩,但已经开始展现出对优雅代码的追求。 江湖小虾 初步掌握…...
7、Redis 队列与 Stream
引言 Redis 自 5.0 版本起引入了一种新的数据结构——Stream。这种数据结构不仅增加了 Redis 的数据处理能力,还使其在消息队列和数据流处理方面更具竞争力。Stream 提供了持久化、多播、消费组等功能,可以满足多种复杂的数据处理需求。 1. Redis Stre…...
FFT剖析
快速傅里叶变换 (fast Fourier transform) xn{x0,x1,…xn-1} (num:N) 旋转因子系数: d2pik/N 旋转因子 wk(n)(cos(dn)isin(dn)) n[0,N-1] y(k) sum(x(n)wk(n),0,N-1) y(k){y(0),y(1),…y(N-1)} 傅里叶级数 x(n)wk(n)的级数是: 1.d2pik/N 这个系数决…...
git clone报错RPC failed; curl 92 HTTP/2 stream 7 was not closed cleanly
问题描述 git clone github上的项目报错: RPC failed; curl 92 HTTP/2 stream 7 was not closed cleanly: CANCEL (err 8) 4796 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet early EOF fetch-pack: invalid index-pac…...
Apispec,一个用于生成 OpenAPI(Swagger)规范的 Python 库
目录 01什么是 Apispec? 为什么选择 Apispec? 安装与配置 02Apispec 的基本用法 生成简单的 API 文档 1、创建 Apispec 实例 2、定义 API 路由和视图 3、添加路径到 Apispec 集成 Flask 和 Apispec 1、安装…...
SpringBoot 自定义异常返回数据格式
Spring Boot 默认异常处理 当我们用 spring boot 开发接口是,当遇到异常时返回的数据格式是如下形式的 {"timestamp": "2024-07-06T02:48:55.79100:00","status": 404,"error": "Not Found","path":…...
【xinference】(15):在compshare上,使用docker-compose运行xinference和chatgpt-web项目,配置成功!!!
视频演示 【xinference】(15):在compshare上,使用docker-compose运行xinference和chatgpt-web项目,配置成功!!! 1,安装docker方法: #!/bin/shdistribution$(…...
【Unity 3D角色移动】
【Unity 3D角色移动】 在Unity 3D中实现角色移动通常涉及到几个关键步骤,包括设置角色的物理属性、处理输入、更新角色的位置以及动画同步。下面是实现基本3D角色移动的步骤和示例代码: 步骤1:设置角色的物理属性 角色通常使用Character Co…...
个人视角,社会影响力:自媒体的魅力所在
随着数字化时代的到来,自媒体正成为信息传播领域的一场革命。个人视角与社会影响力的结合,赋予了自媒体独特的魅力。在传统媒体受限制的同时,自媒体为每个人提供了表达自己观点和思想的自由。个体的真实视角使得自媒体在信息传播中发挥着重要…...
算法训练营day70
题目1:108. 冗余连接 (kamacoder.com) #include<iostream> #include<vector>using namespace std;int n; vector<int> father(10001, 0);void init() {for(int i 1;i < n;i) father[i] i; }int find(int u) {return u father[u] ? u : fa…...
EtherCAT转Profinet网关配置说明第二讲:上位机软件配置
EtherCAT协议转Profinet协议网关模块(XD-ECPNS20),不仅可以实现数据之间的通信,还可以实现不同系统之间的数据共享。EtherCAT协议转Profinet协议网关模块(XD-ECPNS20)具有高速传输的特点,因此通…...
日志自动分析-Web---360星图GoaccessALBAnolog
目录 1、Web-360星图(IIS/Apache/Nginx) 2、Web-GoAccess (任何自定义日志格式字符串) 源码及使用手册 安装goaccess 使用 输出 3-Web-自写脚本(任何自定义日志格式字符串) 4、Web-机器语言analog(任何自定义日…...
【面试八股文】java基础知识
引言 本文是java面试时的一些常见知识点总结归纳和一些拓展,笔者在学习这些内容时,特地整理记录下来,以供大家学习共勉。 一、数据类型 1.1 为什么要设计封装类,Integer和int区别是什么? 使用封装类的目的 对象化:…...
ssrf结合redis未授权getshell
目录 漏洞介绍 SSRF Redis未授权 利用原理 环境搭建 利用过程 rockylinux cron计划任务反弹shell 写公钥免密登录 ubuntu 写公钥免密登录 漏洞介绍 SSRF SSRF(server side request forgrey)服务端请求伪造,因后端未过滤用户输入&…...
魔法自如:精通 IPython %automagic 命令的切换艺术
魔法自如:精通 IPython %automagic 命令的切换艺术 在 IPython 的神奇世界里,魔术命令是其强大交互功能的核心。这些以 % 或 %% 开头的命令,能够执行一系列特殊的操作,从而增强用户的编程体验。但是,你是否知道&#…...
基于CentOS Stream 9平台搭建MinIO以及开机自启
1. 官网 https://min.io/download?licenseagpl&platformlinux 1.1 下载二进制包 指定目录下载 cd /opt/coisini/ wget https://dl.min.io/server/minio/release/linux-amd64/minio1.2 文件赋权 chmod x /opt/coisini/minio1.3 创建Minio存储数据目录: mkdi…...
学生评教|高校评教|基于SpringBoot+vue高校学生评教系统 (源码+数据库+文档)
高校学生评教系统 目录 基于SpringBootvue高校学生评教系统 一、前言 二、系统设计 三、系统功能设计 1学生功能模块 2管理员功能模块 3老师功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&a…...
用C++和Winsock从零搭建一个局域网聊天室(附完整代码)
用C和Winsock构建高效局域网聊天室的实战指南 在当今数字化协作环境中,即时通讯工具已成为团队沟通的标配。虽然市面上已有成熟的商业解决方案,但理解底层网络通信原理对于开发者而言至关重要。本文将带你从零开始,用C和Winsock API构建一个…...
别再只会apt autoremove了!dpkg报错Sub-process returned error code (1)的5种修复姿势全解析
深度解析dpkg报错Sub-process returned error code (1)的5种专业修复策略 当你正在Ubuntu或Debian系统上安装某个关键软件包时,突然终端弹出一条刺眼的错误信息:"Sub-process /usr/bin/dpkg returned an error code (1)"。这不是普通的警告&am…...
深度解析:Agent 如何处理“开放性目标”与“约束性规则”的冲突?
深度解析:Agent 如何处理“开放性目标”与“约束性规则”的冲突? 1. 引言 (Introduction) 1.1 核心概念锚定与常见误解破冰 在正式展开冲突处理的技术细节之前,我们必须先锚定文章涉及的三个最核心、最容易被模糊定义/误解的AI Agent领域概念…...
算法分析与设计
欢迎来到我的软考中级——软件设计师备考合集。这里不只是一份简单的知识点堆砌,而是我在备考征途中,对庞杂知识体系进行深度梳理与内化的结晶。 面对浩瀚的考纲,从计算机组成原理的底层逻辑,到操作系统的进程调度;从数…...
魔兽争霸3终极优化指南:WarcraftHelper让你的经典游戏在现代系统上重焕新生
魔兽争霸3终极优化指南:WarcraftHelper让你的经典游戏在现代系统上重焕新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3作为…...
NSudo完全指南:轻松获取Windows最高权限的5种方法
NSudo完全指南:轻松获取Windows最高权限的5种方法 【免费下载链接】NSudo [Deprecated, work in progress alternative: https://github.com/M2Team/NanaRun] Series of System Administration Tools 项目地址: https://gitcode.com/gh_mirrors/ns/NSudo NSu…...
UVM实战:RAL寄存器测试全流程详解(含代码示例)
UVM实战:RAL寄存器测试全流程详解(含代码示例) 在芯片验证领域,寄存器测试是确保硬件功能正确性的关键环节。UVM(Universal Verification Methodology)作为行业标准验证方法学,其内置的RAL&…...
终极指南:如何快速上手ALOHA开源双臂机器人系统,开启你的机器人开发之旅
终极指南:如何快速上手ALOHA开源双臂机器人系统,开启你的机器人开发之旅 【免费下载链接】aloha 项目地址: https://gitcode.com/gh_mirrors/al/aloha 你是否梦想拥有一个能够像人类一样灵巧操作的双臂机器人?ALOHA开源双臂机器人系统…...
避坑指南:用ArcGIS批量裁剪TIFF时,如何确保输出范围和命名不混乱?
ArcGIS批量裁剪TIFF实战:精准控制输出范围与命名的进阶技巧 当你面对数百个TIFF文件需要批量裁剪时,ArcGIS的ModelBuilder本应是效率神器,但实际使用中却常常遇到输出范围错乱、命名重复甚至文件丢失的窘境。我曾在一个遥感数据处理项目中&am…...
