【剑指offer】面试题26:树的子结构(Java)
输入两棵二叉树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
限制:
代码:
/**
* 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)相关推荐
- 剑指Offer - 面试题26. 树的子结构(双重递归)
1. 题目 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A:3/ \4 5/ \1 2 ...
- 剑指offer面试题26. 树的子结构(链表)
题目描述 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 思路 详见链接 代码 class Solution ...
- 剑指offer——面试题26:复杂链表的复制
剑指offer--面试题26:复杂链表的复制 Solution1: 小套路记住就行!!! 根据书上复杂度为O(n)O(n)O(n)的算法写的,此题加深了对于链表指针的理解与应用! /* struct ...
- 剑指offer面试题6 重建二叉树(java)
注:(1)java中树的构建 (2)构建子树时可以直接利用Arrays.copyOfRange(preorder, from, to),这个方法是左开右闭的 1 package com.xsf.Sor ...
- [剑指offer]面试题26:复杂链表的复制
面试题26:复杂链表的复制 题目:请实现函数ComplexListNodeClone(ComplexListNodepHead),复制一个复杂链表.在复杂链表中,每个结点除了有一个m_pNext指针指 ...
- 《剑指Offer》题目:树的子结构
题目描述:树的子结构 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 题目分析:此题可以拆成两题,1.在二叉树中查找是否存在某个结点:2.判断两个二叉树是否 ...
- 剑指offer(C++)-JZ26:树的子结构(数据结构-树)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构.(我们约定空树不是任意一个树的子结构) ...
- 剑指offer面试题[26]-复杂链表的复制
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否 ...
- 剑指offer(17)树的子结构
1. 从根节点开始判断,判断树root2是不是root1的子树. 2. 如果不是,再递归判断root2是不是root1.left的子树. 3. 如果第二步没成立,则再判断root2是不是root1 ...
- [剑指offer]面试题第[37]题[Leedcode][JAVA][第297题][二叉树列的序列化与反序列化][递归][BFS]
[问题描述][中等] 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据.请设 ...
最新文章
- linux 程序包 permission denied,Linux 执行程序 报错误:Permission denied.
- python中二进制以什么开头_Python二进制表示和位操作
- Ubuntu中启用关闭Network-manager网络设置问题!
- java 成员类_Java类的五大成员之一——内部类
- Redis 五种数据结构以及三种高级数据结构解析以及使用
- Hyhyhy – 专业的 HTML5 演示文稿工具
- 字符串比较函数实现,超简单的面试题,回过头来发现原来我的c多么的薄弱
- weblogic 12 开启debug端口配置
- c++语言里平方根值函数,函数式编程之函数定义与使用(以scala语言为例)
- 点云配准(四) 四元数与旋转变换
- 中国最美的100首情诗
- ubuntu下安裝搜狗輸入法
- 计算机在欢迎进不到桌面,电脑一直在欢迎界面进不去怎么解决_电脑开机一直卡在欢迎界面怎么办-win7之家...
- 智能分析的所见即所得——基于Lambda架构的实时数据引擎
- C1认证学习四(多媒体基础参数)
- Amazon Braket 与量子计算
- 微信小程序漏洞:可下载任意微信小游戏源代码
- Java implements和extends的区别
- 那些想不断提高自己技术水平的Java程序员们
- Java版SLG游戏 竜退治2
热门文章
- LeetCode 1086. 前五科的均分(map + 优先队列)
- LeetCode 1286. 字母组合迭代器(回溯/位运算)
- 程序员面试金典 - 面试题 16.06. 最小差(排序+双指针)
- 剑指Offer - 面试题60. n个骰子的点数(动态规划)
- oracle 打开 ctl,Oracle 19c 随系统systemctl启动数据库
- php 无法加载css文件,解决ThinkPHP样式无法加载问题(CSS,JS),
- Hive关于数据库的增删改查
- 帝国cms搜索php分页,帝国cms V7.2自定义分页(列表分页,内容分页)样式步骤
- 一建机电实务教材电子版_2020一建教材+章节习题+新旧教材对比【全科】免费送...
- 详解深度语义匹配模型DSSM和他的兄弟姐妹