Leetcode 572 另一棵树的子树

文章目录

  • 1. 题目描述
  • 2. 我的尝试
  • 3. 其他题解

1. 题目描述

Leetcode 572 另一棵树的子树

2. 我的尝试

以中序顺序从大树的根节点开始遍历,每次比较以当前节点为根节点的子树是否与小树相同。若某次比较结果为true,说明小树是大树的子树。

比较两树是否相同时,只需先比较根节点是否相同,再递归地比较左右子树是否相同。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool isSubtree(TreeNode* root, TreeNode* subRoot) {if (!root) return false;if (cmp(root, subRoot)) return true;return isSubtree(root->left, subRoot) || isSubtree(root->right, subRoot);}bool cmp(TreeNode* a, TreeNode* b) {if (!a || !b) return (!a && !b);if (a->val != b->val) return false;else return cmp(a->left, b->left) && cmp(a->right, b->right);}
};

3. 其他题解

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

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

相关文章

JDK环境变量配置-jre\bin、rt.jar、dt.jar、tools.jar

我们主要看下rt.jar、dt.jar、tools.jar的作用,rt.jar在​%JAVA_HOME%\jre\lib,dt.jar和tools.jar在%JAVA_HOME%\lib下。 rt.jar:Java基础类库,也就是Java doc里面看到的所有的类的class文件。 tools.jar:是系统用来编…

在ubuntu上安装FastSufer【本机安装】

亲测:FastSurfer分割并重建一个大脑需要1个小时,而freeSurfer需要8个小时。确实很快! 这里我在网页端搭建了一个小的工具包,里面集成了经典的freeSurfer和较快的FastSurfer。如果你不想安装或者手头没有linux设备,您也可以直接从以下网址直接使用,跳过繁琐的安装步骤!!…

嵌入式面经-ARM体系架构-寄存器与异常处理

ARM寄存器组织 寄存器概念 寄存器是处理器内部的存储器,没有地址 寄存器作用 一般用于暂时存放参与运算的数据和运算结果 在某个特定模式下只能使用当前模式下的寄存器,一个模式下特有的寄存器别的模式下不能使用 一共是40个寄存器 寄存器分类 通用寄…

Vue3.0里为什么要用 Proxy API 替代 defineProperty API

一、Object.defineProperty 定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象 为什么能实现响应式 通过defineProperty 两个属性,get及set get 属性的 getter 函…

Br 算法

基于google的brotli开源&#xff0c;实现Br算法。 #include <brotli/encode.h> #include <brotli/decode.h>namespace br {/*compress unsigned char* content,if ok return non empty unsigned char * */std::string compress_string(const std::string& c…

【Web】浅聊Hessian反序列化之打Rome出网不出网

目录 前言 出网——JdbcRowSetImpl 不出网——SignedObject 打二次反序列化 前文&#xff1a;【Web】浅聊Java反序列化之玩转Hessian反序列化的前置知识 前言 正如我们前文所说&#xff0c;当Hessian反序列化Map类型的对象的时候&#xff0c;会自动调用其put方法&#xff…

pytorch的梯度图与autograd.grad和二阶求导

前向与反向 这里我们从 一次计算 开始比如 zf(x,y) 讨论若我们把任意对于tensor的计算都看为函数&#xff08;如将 a*b&#xff08;数值&#xff09; 看为 mul(a,b)&#xff09;&#xff0c;那么都可以将其看为2个过程&#xff1a;forward-前向&#xff0c;backward-反向在pyto…

常有的正则表达式

在项目开始实践中&#xff0c;我们经常遇到一些校验手机号、座机号、小数位、特殊字符之类的正则表达式&#xff0c;这里根据开发经验罗列了一下常见的正则表达式。原文详见《常用正则表达式》 正则表达式 校验数字 验证0-7.1&#xff08;不包含0和7.1&#xff09; 验证0-7…

如何提高API接口的性能和设计安全可靠的API

如何提高API接口的性能 下图显示了提高 API 性能的 5 种常见技巧。 分页 这是在结果集较大时常用的优化方法。结果会以流式方式传回客户端&#xff0c;以提高服务响应速度。 异步日志 同步日志每次调用都要处理磁盘&#xff0c;会降低系统速度。异步日志会先将日志发送到无…

《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)

1.简介 本文主要介绍两个在测试过程中可能会用到的功能&#xff1a;Actions类中的拖拽操作和Actions类中的划取字段操作。例如&#xff1a;需要在一堆log字符中随机划取一段文字&#xff0c;然后右键选择摘取功能。 2.拖拽操作 鼠标拖拽操作&#xff0c;顾名思义就是&#xff…

文本向量评测MTEB和C-MTEB

文章目录 简介MTEBC-MTEB参考资料 简介 MTEB(Massive Text Embedding Benchmark)是目前评测文本向量很重要的一个参考&#xff0c;其榜单也是各大文本向量模型用来展示与其他向量模型强弱的一个竞技台。 C-MTEB则是专门针对中文文本向量的评测基准。 MTEB MTEB的目的是为了…

vuepress-theme-vdoing博客搭建教程

搭建流程 前言 这是笔者搭建个人博客所经历的流程&#xff0c;特附上笔记 笔者个人博客地址&#xff1a;沉梦听雨的编程指南 一、主题介绍 本博客使用的主题为&#xff1a;vuepress-theme-vdoing&#xff0c;相关介绍和使用方法可以参考该主题的官方文档 官方文档快速上手…

什么是PROFIBUS DP网络布线的1米原则?分支线又是什么?

在上期的文章中&#xff0c;我们介绍了 PROFIBUS DP 网络在连接时涉及到的硬件&#xff1a;DP 线缆、PROFIBUS 插头、终端电阻、中继器和有源终端等。 在今天的文章中&#xff0c;就让我们了解一下在 PROFIBUS DP 网络布线时&#xff0c;需要注意的原则有哪些。 一米原则 当 …

图分割 Graph Partition 学习笔记2

文章目录 前言一、Metis原理二、Metis优点三、Metis软件包安装流程参考链接 前言 今天来学一下Metis算法&#xff0c;经过搜索发现这个算法还是蛮多人在讲解的&#xff0c;我也在这里浅浅记录一下~ 一、Metis原理 METIS是一种层次化的分割算法&#xff08;multi-level partitio…

梯度剪裁: torch.nn.utils.clip_grad_norm_()

梯度剪裁: torch.nn.utils.clip_grad_norm_() 一、原理 pytorch中梯度剪裁方法为 torch.nn.utils.clip_grad_norm_(parameters, max_norm, norm_type2)1。三个参数&#xff1a; parameters&#xff1a;希望实施梯度裁剪的可迭代网络参数 max_norm&#xff1a;该组网络参数梯…

第六代Spartan FPGA迎接智能边缘互联新挑战

预计到2028年&#xff0c;物联网设备的数量将增加一倍以上&#xff0c;处理能力需求也将同步增长。设备数量的激增会推动产生对于更高数量I/O的需求、对更通用I/O的需求&#xff0c;以及对于边缘端安全解决方案的需求&#xff1b;处理能力需求的提升则需要更强且更有效率的处理…

勾八头歌之数据科学导论—数据采集实战

一、数据科学导论——数据采集基本概念 第1关&#xff1a;巧妇难为无米之炊 第2关&#xff1a;数据采集概念与内涵 二、数据科学导论——数据采集实战 第1关&#xff1a;单网页爬取 import urllib.request import csv import re# ********** Begin ********** # dataurllib.r…

java项目安全性与权限管理实践与探讨

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一. 身份验证和授权 二. 输入验证和过滤 2.1. 添加OW…

Spring MVC RequestToViewNameTranslator原理解析

在Spring MVC框架中&#xff0c;RequestToViewNameTranslator是一个接口&#xff0c;它用于根据HTTP请求的信息生成对应的视图名称。这一机制在构建动态视图名称的场景中非常有用&#xff0c;尤其是当视图名称需要根据请求参数或请求路径动态生成时。本文将详细解析RequestToVi…

电机应用-步进电机进阶驱动

步进电机梯形加减速 什么是梯形加减速 假设该装置使用步进电机实现物体X的移动&#xff0c;系统要求从A点出发&#xff0c;到B点停止&#xff0c;移动的时间越短越好且系统稳定。 根据步进电机的特性&#xff0c;最大程度加大电机转速&#xff08;提高脉冲频率&#xff09;&a…