检查子树00

2024-06-13 15:52
文章标签 检查 00 子树

本文主要是介绍检查子树00,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接

检查子树

题目描述

注意点

  • 树的节点数目范围为[0, 20000]

解答思路

  • 递归判断t1和t2的val是否相同,如果相同,则继续递归判断其左右子树的值是否都相同,如果都相同则返回true;如果不相同,则继续递归判断t1的左右子树和t2的val是否相同
  • 需要注意的是,如果t1和t2的val相同,在判断其左右子树的值是否相同时,如果不同,则直接返回false;而在判断t1和t2的val不同时,不应该直接返回false,还需要判断t1的左右子树与t2是否相同,所以还需要传递isRoot记录t2是否是根节点

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public boolean checkSubTree(TreeNode t1, TreeNode t2) {return preOrder(t1, t2, true);}public boolean preOrder(TreeNode t1, TreeNode t2, boolean isRoot) {if (t1 == null && t2 == null) {return true;}if (t1 == null || t2 == null) {return false;}if (t1.val != t2.val) {if (!isRoot) {return false;}return preOrder(t1.left, t2, isRoot) || preOrder(t1.right, t2, isRoot);}boolean flag = preOrder(t1.left, t2.left, false) && preOrder(t1.right, t2.right, false);if (flag) {return true;}return preOrder(t1.left, t2, isRoot) || preOrder(t1.right, t2, isRoot);}
}

关键点

  • 递归的思路
  • 注意递归判断t1的某个节点和t2的根节点、t1的某个节点和t2和某个节点不相同的分类情况

这篇关于检查子树00的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057753

相关文章

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

java的Timestamp时间插入mysql的datetime字段是0000-00-00 00:00:00

Mysql 与 java 的时间类型             MySql的时间类型有              Java 中与之对应的时间类型                  date                                               java.sql.Date               Datetime

【00】408笔记

上图参考文章 RIP 最大的跳数为15 为主机配置地址:DHCP ICMP报文传输方式:放在IP数据报的数据字段中传送 CIDR技术的作用:是网络归并技术,把小的网络汇聚成大的超网,进而缓解了地址资源不足的问题 IP首部字段,与分片和重组有关的是:片偏移,标志,标识 普通IP首部长为20个字节,最长60字节 16位总长度(Total Length): 标识IP数据报包的总长度,以字节为单位

javaweb-day02-2(00:40:06 XML 解析 - Dom4j解析开发包)

导入dom4j开发包:dom4j-1.6.1.jar   在工程下建一个文件夹lib,将dom4j-1.6.1.jar拷到里边。右键add to build path。  dom4j-1.6.1\lib文件夹下还有一些jar包,是开发过程中dom4j所需要依赖的jar包,如开发过程中报错,则需导入。   用dom4j怎么做呢? 只要是开源jar包提供给你的时候,它会在开源包里面提供

javaweb-day01-2(00:17:48 XML 的作用 和 语法)

XML: 描述 可扩展标记语言,w3c  2000年发布的 XML 1.0 版本规范。 用来描述数据之间的关系。 经常用作 软件  的配置文件,描述 模块与模块 之间的关系。 还用作    软件启动  的配置文件,描述 启动模块之间的 依赖 关系。 语法 一个XML文件分为如下几部分内容: 文档声明元素属性注释CDATA区、转义字符处

锁检查脚本

--用dba用户执行以下语句,可以查看到被锁的语句。 select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object WHERE object_id='107181'))

C++ 代码检查工具

Cppcheck : http://cppcheck.sourceforge.net/ Clang Static Analyzer https://clang-analyzer.llvm.org / sudo apt install clang cppcheck main.c输出:Checking main.c...[main.c:15]: (error) Common reallo

Python JAVA接口UTC 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间

Python JAVA接口UTC 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间 方法1 import datetimeorigin_date_str= "2019-07-26T08:20:54Z"utc_date = datetime.datetime.strptime(origin_date_str, "%Y-%m-%dT%H:%M:%SZ")loca

2024年上海松江启动建筑绿色低碳发展专项检查,共绘城市节能新篇章

2024年9月4日,2024年度松江区建筑工程绿色低碳发展工作专项检查会议正式开展,会议内容主要围绕以下三点, 1、《关于开展 2024年度本市建筑领域绿色低碳发展工作监督检查的通知》宣贯。 2、分项计量、能效测评工作验收要求介绍。 3、专项检查工作安排。 我国在早期没有高度重视建筑物的环保节能,造成了过去30年内竣工的建筑绝大多数是高能耗工程建筑,这类工程建筑在未来几十年里将耗费许多能源

相机检查内参 外参

目录 检查内参 外参 像素点投影到世界坐标系,再投回到2d坐标系: 检查内参 外参 import cv2import numpy as np# 假设我们有以下相机内参K = np.array([[418.96369417, 0.0, 489.16315478],[0.0, 419.04813353, 267.88796254],[0.0, 0.0, 1.0]], dtype=n