[leetCode]剑指 Offer 26. 树的子结构-程序员宅基地

技术标签: # 二叉树  LeetCode  

在这里插入图片描述

解法递归

求解过程可以分为两步:
1. 遍历A中节点,找到与B中根节点相同的节点
第一步可以使用递归实现线序遍历
2. 判断是否存在相同的结构
第二步可以可以使用递归判断A、B左右子树结构是否相同

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    
    public boolean isSubStructure(TreeNode A, TreeNode B) {
    
        boolean result = false;
        if(A != null && B != null){
    
            if(A.val == B.val){
    
                result = doseTreeAHasTreeB(A, B);
            }
            if(!result)
                result = isSubStructure(A.left, B);
            if(!result)
                result = isSubStructure(A.right,B);
        }
        return result;
    }

    private boolean doseTreeAHasTreeB(TreeNode A, TreeNode B){
    
        if(B == null)
            return true;
        if(A == null)
            return false;
        if(A.val != B.val)
            return false;
        return doseTreeAHasTreeB(A.left,B.left) && doseTreeAHasTreeB(A.right, B.right);
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/renweiyi1487/article/details/108139290

智能推荐

黑马程序员-----java基础 面向对象-程序员宅基地

文章浏览阅读312次。------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

MapReduce实现分组排序_mapreduce 分组排序-程序员宅基地

文章浏览阅读4.1k次。MapReduce实现分组排序以某次竞赛为例,分别进行如果实现:取每组中男生前三名成绩和女生前三名成绩按照年龄分组降序输出所有人的成绩等价的SQL0. 预备知识0.1 基于MapReduce实现分组、排序:分组:相当于group by。MapReduce的实现:相当于分区,以求处理手机上网日志为例,把手机号和非手机号分为两组。_mapreduce 分组排序

HashTable实现原理-程序员宅基地

文章浏览阅读1.7w次,点赞6次,收藏27次。 有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key)方法获取相对应的value值。一个是前面提到的HashMap,还有一个就是马上要讲解的HashTable。对于HashTable而言,它在很大程度上和HashMap的实现差不多,如果我们对HashMap比较了解的话,对H..._hashtable实现

国家基础地理信息中心行政边界等矢量数据免费下载保姆级教程--关于地理数据收集与处理的基本工具推荐(7)_全国矢量数据获取 csdn-程序员宅基地

文章浏览阅读1w次,点赞17次,收藏76次。自然资源部授权的全国地理信息资源目录服务系统数据免费下载教程:全国1:100万公众版基础地理信息数据(2021)覆盖全国陆地范围和包括台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域,共77幅1:100万图幅该数据集整体现势性为2019年数据采用2000国家大地坐标系1985国家高程基准,经纬度坐标下载数据采用1:100万标准图幅分发。_全国矢量数据获取 csdn

JAVA初学——week11 抽象类 接口-程序员宅基地

文章浏览阅读105次。抽象类抽象类提供抽象方法,只有方法的签名而没有具体的实现方法。好比做一份番茄炒蛋,抽象类仅仅只是提供一个“番茄炒鸡蛋”这个做法,但是不提供具体怎么操作,“去皮番茄炒蛋”、“原汁原味番茄炒蛋”、“老少皆宜炒蛋”等这种具体做法就在实例里面实现。抽象类必须要用abstract修饰符来定义,抽象类里面可以没有抽象方法。如public abstract class shape{}。不能使用new来调用构造器创建抽象类实例。抽象类可以包含成员变量、方法、构造器、初始化块、内部类,主要用于被其子类调用。只能被类

Camera 基本工作原理-程序员宅基地

文章浏览阅读123次。2019独角兽企业重金招聘Python工程师标准>>> ..._camera基本原理

随便推点

你写的代码、你朋友写的代码、GitHub上的代码 | 每日趣闻-程序员宅基地

文章浏览阅读366次。让全世界看到程序员的幽默!往 期 趣 闻☞揭秘程序员给产品经理的备注竟是…… | 每日趣闻☞程序员最常说的谎言是什么? | 每日趣闻☞程序员必知必会的“从入门到放弃”系列! | 每日趣闻☞程序员“修仙”图鉴 | 每日趣闻☞揭秘互联网人的真实工作状态 | 每日趣闻五大模块系统掌握Python编程技能!https://edu.csdn.net/topi..._你的代码,朋友的代码,github

IBM Spectrum LSF Suites 介绍-程序员宅基地

文章浏览阅读162次,点赞7次,收藏4次。LSF异构、高扩展性和可用架构可为传统的高性能计算和高吞吐量工作负载提供支持,也适用于大数据、认知、GPU 机器学习和容器化工作负载。借助更多访问 HPC 资源的方式提高用户生产力,包括用于作业监视和通知的移动设备客户端,以及用于 Windows 环境的集成式桌面客户端。自动检测和配置 NVIDIA GPU 以简化 GPU 服务器的管理,并充分利用 NVIDIA GPU 的行为监视、运行状况和诊断以及会计和进程统计信息。通过将增强的用户接口与政策和自动化相结合,创造更出色的成果。

数据库学习—SQL语言概述_sql操作中的撤销重做-程序员宅基地

文章浏览阅读965次。数据库及SQL初学_sql操作中的撤销重做

手把手教你编写Python抢购脚本-程序员宅基地

文章浏览阅读751次,点赞24次,收藏15次。① Python所有方向的学习路线图,清楚各个方向要学什么东西② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论④ 20款主流手游迫解 爬虫手游逆行迫解教程包⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解⑦ 超300本Python电子好书,从入门到高阶应有尽有⑧ 华为出品独家Python漫画教程,手机也能学习。

Powershell 初探_split-path -parent $myinvocation.mycommand.definit-程序员宅基地

文章浏览阅读716次。最近从一名前端程序员转行到了数据库方面,并首次接触到了Power Shell这一工具 现在有这样的需求,在某个目录下有其他程序生成的dtsx文件,需要有选择地把它们拷贝到部署目录下面 需要拷贝的文件列表写在xml文件里 形式如下:

图形化开放式生信分析系统开发 - 6 生信分析流程批量运行与过程控制_生信分析管理系统-程序员宅基地

文章浏览阅读445次。前文链接:生信分析云平台产品开发 - 1 需求分析及技术实现生信分析云平台产品开发 - 2 样本信息处理生信分析云平台产品开发 - 3 生信分析pipeline的进化生信分析云平台产品开发 - 4 生信分析pipeline的图形化生信分析云平台产品开发 - 5 生信分析pipeline服务器端运行在上文生信分析云平台产品开发 - 5 生信分析pipeline服务器端运行 解决了..._生信分析管理系统

推荐文章

热门文章

相关标签