树的子结构

题目描述

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

题目链接: 树的子结构

代码

/**
* 标题:树的子结构
* 题目描述
* 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
* 题目链接:
* https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&&tqId=11170&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
*/
public class Jz17 { public static void main(String[] args) {
TreeNode root1 = new TreeNode(2);
TreeNode root2 = new TreeNode(2); Jz17 jz17 = new Jz17();
System.out.println(jz17.hasSubtree(root1, root2));
} public boolean hasSubtree(TreeNode root1, TreeNode root2) {
if (root1 == null || root2 == null) {
return false;
} return isSubtreeWithRoot(root1, root2) || hasSubtree(root1.left, root2) || hasSubtree(root1.right, root2);
} /**
* 递归法
*
* @param root1
* @param root2
* @return
*/
private boolean isSubtreeWithRoot(TreeNode root1, TreeNode root2) {
if (root2 == null) {
return true;
}
if (root1 == null) {
return false;
}
if (root1.val != root2.val) {
return false;
}
return isSubtreeWithRoot(root1.left, root2.left) && isSubtreeWithRoot(root1.right, root2.right);
}
}

【每日寄语】 总之岁月漫长,然而值得等待。

JZ-017-树的子结构的更多相关文章

  1. 剑指Offer面试题:17.树的子结构

    一.题目:树的子结构 题目:输入两棵二叉树A和B,判断B是不是A的子结构.例如下图中的两棵二叉树,由于A中有一部分子树的结构和B是一样的,因此B是A的子结构. 该二叉树的节点定义如下,这里使用C#语言 ...

  2. 剑指offer——树的子结构 (JAVA代码)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构). 解题思路: 首先看牛客网给出的测试用例: ...

  3. 剑指Offer 树的子结构

    题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构)     思路: 分为2个部分.1先找出A中和B根节点相同的节点r. 2,咱判断B中所有孩子节点是不 ...

  4. [Jobdu] 题目1520:树的子结构

    题目描述: 输入两颗二叉树A,B,判断B是不是A的子结构.注:B为空树时不为任何树的子树 typedef struct BTNode{ int key; struct BTNode *rchild; ...

  5. 《剑指offer》— JavaScript(17)树的子结构

    树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 相关知识 二叉树子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取.例 ...

  6. 树的子结构(JAVA)

    树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) public boolean HasSubtree(TreeNode root1, T ...

  7. 《剑指offer》 树的子结构

    本题来自<剑指offer> 树的子结构 题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 思路: 分两步走: 第一步:判断根节点,两个根节 ...

  8. 剑指offer(17)树的子结构

    题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 题目分析 分析如何判断树B是不是树A的子结构,只需要两步.很容易看出来这是一个递归的过程.一般在树 ...

  9. 剑指Offer 17. 树的子结构 (二叉树)

    题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 题目地址 https://www.nowcoder.com/practice/6e196c44c7 ...

  10. 剑指offer:树的子结构

    题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解题思路: 同样考虑用递归来做. 利用两个递归函数,一个用于判断两棵树树否相等,另一个递归取A的 ...

随机推荐

  1. Homework_1

    寒假第一份作业 一.博客园部分 1.个人博客园链接 Click here 2.markdown界面截图 我用typora编辑 所以贴上typora界面的截图 二.Github部分 1.个人Github ...

  2. SharePoint Online 为Modern Page添加脚本

    前言 众所周知,如果我们想向SharePoint 页面添加脚本,最方便的便是经典页面,添加方式主要有内容编辑器Web部件或者直接使用SharePoint Designer. 但是,如果页面是Moder ...

  3. Disruptor-高性能队列

    简介 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题.与Kafka.RabbitMQ用于服务间的消息队列不同,disruptor一般用于线程间消息 ...

  4. MySQL server has gone away 异常

    原因 一种可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,你只要修改my.cnf,加大max_allowed_packet的值即可. 还有一种可能是因 ...

  5. linux 设置connect 超时

    转载请注明来源:https://www.cnblogs.com/hookjc/ 将一个socket 设置成阻塞模式和非阻塞模式,使用fcntl方法,即: 设置成非阻塞模式: 先用fcntl的F_GET ...

  6. 通过Xib加载控制器的View

    1.创建窗口self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];2.设置窗口根控制器2.1从XIB当 ...

  7. Nodejs path对象

    很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文 ...

  8. 基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板

    一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片Xilinx FPGA K7 XC72K325T-1ffg900.包含1个千兆网口 ...

  9. Solution -「LOJ #6485」 LJJ 学二项式定理

    \(\mathcal{Description}\)   Link.   给定 \(n,s,a_0,a_1,a_2,a_3\),求: \[\sum_{i=0}^n\binom{n}is^ia_{i\bm ...

  10. 花里胡哨之自定义linux终端前缀显示

    文章目录 1.先看默认的linux终端前缀 2.查看默认的终端前缀变量 3.符号所代表的意义 4.修改PS1变量,达成自定义效果 4.1.只显示主机名和完整目录 4.2.给他点颜色看看 5.谢幕 1. ...