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

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

例如:
给定的树 A:

3
    / \
   4   5
  / \
 1   2
给定的树 B:


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

示例 1:

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

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

代码:

/**

* 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) {

if(A==null && B==null) return true;

if(A==null)

{

return false;

}

if(B==null)

{

return false;

}

if(find(A,B))

{

return true;

}

if(isSubStructure(A.left,B))

{

return true;

}

if(isSubStructure(A.right,B))

{

return true;

}

return false;

}

public boolean find(TreeNode A,TreeNode B)

{

if(A==null&&B==null)

{

return true;

}

if(A==null)

{

return false;

}

if(B==null)

{

return true;

}

if(A.val==B.val)

{

return find(A.left,B.left)&&find(A.right,B.right);

}

else

{

return false;

}

// return true;

}

}

【剑指offer】面试题26:树的子结构(Java)相关推荐

  1. 剑指Offer - 面试题26. 树的子结构(双重递归)

    1. 题目 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A:3/ \4 5/ \1 2 ...

  2. 剑指offer面试题26. 树的子结构(链表)

    题目描述 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 思路 详见链接 代码 class Solution ...

  3. 剑指offer——面试题26:复杂链表的复制

    剑指offer--面试题26:复杂链表的复制 Solution1: 小套路记住就行!!! 根据书上复杂度为O(n)O(n)O(n)的算法写的,此题加深了对于链表指针的理解与应用! /* struct ...

  4. 剑指offer面试题6 重建二叉树(java)

    注:(1)java中树的构建 (2)构建子树时可以直接利用Arrays.copyOfRange(preorder, from, to),这个方法是左开右闭的 1 package com.xsf.Sor ...

  5. [剑指offer]面试题26:复杂链表的复制

    面试题26:复杂链表的复制 题目:请实现函数ComplexListNodeClone(ComplexListNodepHead),复制一个复杂链表.在复杂链表中,每个结点除了有一个m_pNext指针指 ...

  6. 《剑指Offer》题目:树的子结构

    题目描述:树的子结构 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 题目分析:此题可以拆成两题,1.在二叉树中查找是否存在某个结点:2.判断两个二叉树是否 ...

  7. 剑指offer(C++)-JZ26:树的子结构(数据结构-树)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构.(我们约定空树不是任意一个树的子结构) ...

  8. 剑指offer面试题[26]-复杂链表的复制

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否 ...

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

    1. 从根节点开始判断,判断树root2是不是root1的子树.  2. 如果不是,再递归判断root2是不是root1.left的子树.  3. 如果第二步没成立,则再判断root2是不是root1 ...

  10. [剑指offer]面试题第[37]题[Leedcode][JAVA][第297题][二叉树列的序列化与反序列化][递归][BFS]

    [问题描述][中等] 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据.请设 ...

最新文章

  1. linux 程序包 permission denied,Linux 执行程序 报错误:Permission denied.
  2. python中二进制以什么开头_Python二进制表示和位操作
  3. Ubuntu中启用关闭Network-manager网络设置问题!
  4. java 成员类_Java类的五大成员之一——内部类
  5. Redis 五种数据结构以及三种高级数据结构解析以及使用
  6. Hyhyhy – 专业的 HTML5 演示文稿工具
  7. 字符串比较函数实现,超简单的面试题,回过头来发现原来我的c多么的薄弱
  8. weblogic 12 开启debug端口配置
  9. c++语言里平方根值函数,函数式编程之函数定义与使用(以scala语言为例)
  10. 点云配准(四) 四元数与旋转变换
  11. 中国最美的100首情诗
  12. ubuntu下安裝搜狗輸入法
  13. 计算机在欢迎进不到桌面,电脑一直在欢迎界面进不去怎么解决_电脑开机一直卡在欢迎界面怎么办-win7之家...
  14. 智能分析的所见即所得——基于Lambda架构的实时数据引擎
  15. C1认证学习四(多媒体基础参数)
  16. Amazon Braket 与量子计算
  17. 微信小程序漏洞:可下载任意微信小游戏源代码
  18. Java implements和extends的区别
  19. 那些想不断提高自己技术水平的Java程序员们
  20. Java版SLG游戏 竜退治2

热门文章

  1. LeetCode 1086. 前五科的均分(map + 优先队列)
  2. LeetCode 1286. 字母组合迭代器(回溯/位运算)
  3. 程序员面试金典 - 面试题 16.06. 最小差(排序+双指针)
  4. 剑指Offer - 面试题60. n个骰子的点数(动态规划)
  5. oracle 打开 ctl,Oracle 19c 随系统systemctl启动数据库
  6. php 无法加载css文件,解决ThinkPHP样式无法加载问题(CSS,JS),
  7. Hive关于数据库的增删改查
  8. 帝国cms搜索php分页,帝国cms V7.2自定义分页(列表分页,内容分页)样式步骤
  9. 一建机电实务教材电子版_2020一建教材+章节习题+新旧教材对比【全科】免费送...
  10. 详解深度语义匹配模型DSSM和他的兄弟姐妹