剑指offer-刷题笔记-中等题-JZ26 树的子结构

牛客网剑指Offer - java版 剑指Offer - java版 文章目录剑指Offer - java版JZ01JZ02 替换空格JZ03 从尾到头打印链表JZ04 重建二叉树JZ05 用两个栈实现队列JZ06 旋转数组的最小数字JZ07 斐波那契数列JZ08 跳台阶问题JZ09 青蛙跳台阶JZ10 矩形覆盖JZ11 二进制中1的个数JZ12 数值的整数次方JZ13 调整数组顺序,使奇数位于偶数前面JZ14 链表中倒数第k个结点JZ15 反转链表JZ16 合并两个排序的链表JZ17 树的子结构JZ18 二叉树的镜像JZ19 顺时针打印矩阵J 阅读详情

剑指offer-刷题笔记-中等题-JZ26 树的子结构

没有考虑到可能出现的为空的情况,导致后面节点为空,继续访问会出现报错

版本1-自己写的

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
public:

    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {
        //空树不是任意一个树的子结构
        if(pRoot1 == NULL || pRoot2 == NULL)
        {
            return false;
        }
        //比较的时候最好不要将整个树形结构用来比较,应该递归的比较各个节点
        if(pRoot1->val == pRoot2->val && (pRoot1->left->val == pRoot2->left->val || pRoot1->right->val == pRoot2->right->val))
        {
            //cout<<pRoot1->val<<endl;
            return true;
        }
        else
        {
            return HasSubtree(pRoot1->left,pRoot2) || HasSubtree(pRoot1->right,pRoot2);
        }
        return false;
    }
};

版本2

class Solution {
public:
    bool recursion(TreeNode* root1, TreeNode* root2){
        //当一个节点存在另一个不存在时
        if(root1 == NULL && root2 != NULL)  
            return false;
        //两个都为空则返回
        if(root1 == NULL || root2 == NULL)  
            return true;
        //比较节点值
        if(root1->val != root2->val)
            return false;
        //递归比较子树
        return recursion(root1->left, root2->left) && recursion(root1->right, root2->right);
    }
    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {
        //空树
        if(pRoot2 == NULL) 
            return false;
        //一个为空,另一个不为空
        if(pRoot1 == NULL && pRoot2 != NULL)
            return false;
        if(pRoot1 == NULL || pRoot2 == NULL)
            return true;
        //递归比较
        bool flag1 = recursion(pRoot1, pRoot2);  
        //递归树1的每个节点
        bool flag2 = HasSubtree(pRoot1->left, pRoot2);  
        bool flag3 = HasSubtree(pRoot1->right, pRoot2);
        return flag1 || flag2 || flag3;
    }
};

【回眸】剑指offer(一)剑指offer怎么刷 最近有刷算法方面的需要,直接搜出来的学习建议和技巧都太宽泛,而且夹杂着很多广告。借助第二大脑给自己提了一些建议和计划,希望也能帮助到屏幕面前的你! 阅读详情

相关推荐

剑指offer所有编程练习总结分析

给出剑指offer所有题目描述和对应的解题思路,并且在最有给出对应的代码展示和测试内容 由于牛客剑指Offer题目经过整理和筛选,是面试备考的经典资源之一,因此它的重要性在面试准备过程中是很高的。做这些题目可以帮助面试者熟悉常见的面试题型、巩固基础知识、提升编程能力,为应对面试提供了很好的准备。然而,还需注意不仅仅局限于做题,理解背后的原理和思想同样重要,以便能够在面试时灵活运用和展示自己的能力。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 173万+

《剑指offer》刷题记录汇总篇

《剑指offer》刷题汇总1 前言2 刷题网站3 刷题笔记汇总 1 前言   最近啃了个把月的数据结构与算法,有点飘了,准备拿牛客网的剑指offer模块练练手,个人觉得自己刚入门(或许还没入),所以这篇博客比较适合想学习数据结构或者刚接触数据机构的新手朋友朋友们,当然,大佬们也可以看看,一是指导,二是差缺补漏。   刷题顺序即题目顺序,时间的话大概一周 2 刷题网站 点击直达:剑指offer 3 刷题笔记汇总 题号 题目 知识点 JZ1 二维数组中的查找 数组、查找 JZ2 替换空格 字

郑德帅 864

DSP TMS320FF28335程序从FLASH中拷贝到RAM中的两种方法及FLASH烧写方法

程序从FLASH中拷贝到RAM中执行的方法 DSP的程序下载执行方式有两种:一种是下载到RAM中在线执行,一种是下载到FLASH中执行。在RAM中执行时,具有执行速度快,可以无限次下载的特点,但是RAM的特点是掉电丢失数据。FLASH具有掉电不丢失数据的特点,但是同时存在执行速度慢和擦写次数有限的缺点。因此综合两者的特点,在DSP的开发过程中一般会结合使用两者。在前期程序调试过程,由于需要频繁的

AEECREN的博客 1万+

剑指offer笔记(四) 第26题至第32题

剑指offer笔记(四) 第26题至第32题前言一、JZ26 树的子结构二、JZ27 二叉树的镜像三、JZ28 对称的二叉树四、JZ29 顺时针打印矩阵五、JZ30 包含min函数的栈六、JZ31 栈的压入、弹出序列七、JZ32 - 1 从上到下打印二叉树 I八、JZ32 - 2 从上到下打印二叉树 II九、JZ32 - 3 从上到下打印二叉树 III十、总结 前言 这次主要记录剑指offer的9道题,主要使用的语言是python,下面将对这9道题的一些感悟和知识点进行汇总! 提示:以下是本篇文章正

weixin_42269028的博客 1449

Chronos时间序列预测实战:从零开始微调你的第一个大语言模型(附完整代码)

本文提供了一份详细的Chronos时间序列预测大语言模型微调实战指南。从环境搭建、数据预处理到模型配置与训练,手把手教你如何利用自己的数据微调Chronos模型,并完成评估与部署,助你快速掌握这一前沿技术。

zzz56的博客 300

TDDFT计算软件Octopus学习笔记(二):基态计算(Si)

本文以硅为例,来进行基态计算。

陈啸的博客 7305

【剑指Offer刷题】JZ26树的子结构(中等)

输入两棵二叉树A,B,判断B是不是A的子结构。0 <= A的节点个数 <= 10000。0 <= B的节点个数 <= 10000。我们自顶向下分析问题,然后自底向上确定。这里嵌套了子问题,即树的结构是否相同。与二叉树相关的题目,优先用。

Xiaolan_2001的博客 524

【GEE数据库】WRF常用数据集总结

【GEE数据库】WRF常用数据集总结

WW、forever的博客 634

[java刷算法]牛客—剑指offer树的子结构,对称树,树的镜像

[java刷算法]牛客—剑指offer树的子结构,对称树,树的镜像

muzi_longren的博客 988

Claude Code 100个真实案例 - 用AI设计Arduino PCB电路板(硬件小白也能画板)

本案例展示如何使用 Claude Code 配合 KiCad 的 Python 脚本接口,从零设计一块 Arduino 传感器扩展板 PCB。从原理图符号创建、网表生成到 PCB 布局布线,全程自动化完成,最终输出可直接发给工厂打样的 Gerber 文件。

yueyeguzhuo的专栏 438

把 SAP Fiori Launchpad Designer 的 Catalog 与 Group 传输讲透:从 CONF、CUST 到 Transport Request 的完整理解

SAP Fiori项目中,catalog和group的传输问题往往源于对FLPD层次模型的理解不足。FLPD包含configuration(系统级)和customizing(客户端级)两个层面,分别对应workbench request和customizing request传输方式。常见误区包括:混淆/UI2/FLPD_CONF和/UI2/FLPD_CUST入口、未提前创建传输请求、不了解层次覆盖机制(customizing会覆盖configuration)。当客户端修改configuration层的对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 100

剑指Offer26:树的子结构java实现

剑指 Offer 26. 树的子结构 https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/ 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A: 3 / \ 4 5 / \ 1 2 给定的树 B: 4 / 1 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。...

WukongGo的博客 238

手把手教你学Simulink——基于全桥 LLC 谐振变换器的双向 DC-DC 建模与仿真

本文详细介绍了基于Simulink的双向全桥LLC谐振变换器建模与仿真方法。内容涵盖:1)LLC谐振变换器背景与双向化挑战;2)系统架构设计及关键数学推导(FHA增益分析、双向控制逻辑);3)Simulink建模步骤(功率级搭建、PWM生成、同步整流实现);4)仿真结果分析(正向/反向工作验证、ZVS特性);5)工程实践建议(增益微调、代码生成与HIL测试)。通过手把手教学,帮助读者掌握950V↔48V双向LLC变换器的完整设计流程,实现高效率能量双向流动的同时保持软开关特性,适用于储能系统、车载充电等应用

MHD0815的博客 175

剑指offer刷题宝典--第1节

剑指offer刷题宝典,重点总结,链表,树

weixin_41171614的博客 1275

智慧安防:基于Java+YOLOv8的视频AI识别平台设计与实现

张工,我们的园区智慧安防项目又出问题了!用Python写的YOLOv8 demo,拉3路RTSP流就卡,视频延迟超过5秒,入侵检测误报率太高,一到晚上光线差就全是误报,而且和我们的Java安防平台对接太麻烦,还要搭个消息队列,架构复杂得要死!“别慌,用Java+YOLOv8啊!

2601_94871597的博客 196

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

牛客网剑指Offer-树篇-JZ26 树的子结构

输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构)假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构

技术卷的博客 717

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

剑指offer——第8期

保姆级教学 剑指offer 第8期

weixin_59796310的博客 828

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

剑指offer刷题总记——Java

剑指offerJZ1 二维数组中的查找JZ2 替换空格JZ3 从尾到头打印链表JZ7 斐波那契数列JZ14 链表中倒数第k个节点JZ15 反转链表JZ36 两个链表的第一个公共结点 JZ1 二维数组中的查找 题目:二维数组中的查找 public class Solution { //双重for循环,遍历查找 public boolean Find(int target, int [][] array) { //行遍历,array.length为行数 for(i

小叮当不懒的博客 742

剑指offer

​一刷 剑指offer 记录

dwtianwen的博客 1104

算法刷题专栏介绍

剑指offer,力扣热题,牛客top100

weixin_41171614的博客 1056

剑指offer系列刷题

剑指offer系列刷题记录!

weixin_43147335的博客 1613

剑指offer刷题

一. 链表 一. 链表 JZ3 从尾到头打印链表 JZ14 链表中倒数第k个结点 JZ15 反转链表 链表 JZ16 合并两个排序的链表 JZ25 复杂链表的复制 JZ26 二叉搜索树与双向链表 JZ36 两个链表的第一个公共结点 JZ46 孩子们的游戏(圆圈中最后剩下的数) JZ55 链表中环的入口结点 JZ56 删除链表中重复的结点 3. 从尾到头打印链表 【链表】【栈】 牛客剑指offer题目 思路: 只是需要将链表的值打印出来,所以没那么复杂,涉及到反转,只需要利用Stack就

DLUT_yan的博客 2590

剑指 Offer 26. 树的子结构

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构),B是A的子结构, 即 A中有出现和B相同的结构和节点值。

庄小焱 328

剑指offer刷题记录

剑指offer

orz_include的博客 250

【剑指offer-C++】JZ26:树的子结构

【剑指offer-C++】JZ26:树的子结构

❀雾里看花花里看雾❀ 224

(最新版2022版)剑指offer之树和二叉树题解

(最新版2022版)剑指offer之树和二叉树题解

weixin_51405802的博客 1455
上一篇: 剑指offer-刷题笔记-中等题-JZ23 链表中环的入口结点
下一篇: 剑指offer-刷题笔记-中难题-JZ8 二叉树的下一个结点
xiaoliyu00
博客等级 码龄9年 4180粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值