专栏首页CtrlCV博客【剑指Offer】树的子结构

【剑指Offer】树的子结构

题目

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)

B是A的子结构, 即 A中有出现和B相同的结构和节点值。

例如: 给定的树 A:

     3
    / \
   4   5
  / \
 1   2

给定的树 B:

4 / 1 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。

示例 1:

输入:A = [1,2,3], B = [3,1] 输出:false 示例 2:

输入:A = [3,4,5,1,2], B = [4,1] 输出:true 限制:

0 <= 节点个数 <= 10000

题解

class Solution {
    public boolean isSubStructure(TreeNode A, TreeNode B) {
        return (A != null && B != null) && (recur(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B));
    }
    boolean recur(TreeNode A, TreeNode B) {
        if(B == null) return true;
        if(A == null || A.val != B.val) return false;
        return recur(A.left, B.left) && recur(A.right, B.right);
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Markdown语法

    小新哟
  • 【剑指Offer】对称的二叉树

    请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。

    小新哟
  • 【剑指Offer】二叉树中和为某一值的路径

    输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。

    小新哟
  • JavaScript语言精粹【糟粕、毒瘤】

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    奋飛
  • 目标检测算法之SSD

    昨天介绍了特征金字塔网络用于目标检测,提升了多尺度目标检测的鲁棒性,今天开始讲讲One-Stage目标检测算法中SSD算法。这个算法是我平时做工程中最常用到的,...

    BBuf
  • 电商社交数据在大数据风控的应用实践

    大数据文摘
  • Python 技术篇-用PIL库旋转图片的两种方式,改变图像尺寸

    首先需要安装 PIL 库,直接pip install pillow就好了。 旋转包括 transpose() 和 rotate() 两种方式。 resize...

    小蓝枣
  • 观点|系统能力、数据思维可能是未来企业的核心竞争力之一

    最近和不少的朋友有一些交流,对人力分析的工作进行了很多反思。多少企业都开始重视数据分析的力量,但企业数字化转型可不是花大价钱做系统,招几个分析师就能搞定的。

    二号姬
  • 海量数据迁移之外部表切分(r2笔记52天)

    在前几篇中讨论过海量数据的并行加载,基本思路就是针对每一个物理表都会有一个对应的外部表,在做数据迁移的时候,如果表有上百G的时候,一个物理表对应一个外部表性能上...

    jeanron100
  • WebSocket在ASP.NET MVC4中的简单实现

    WebSocket 规范的目标是在浏览器中实现和服务器端双向通信。双向通信可以拓展浏览器上的应用类型,例如实时的数据推送、游戏、聊天等。有了WebSocket,...

    小白哥哥

扫码关注云+社区

领取腾讯云代金券