【剑指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;

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是道德?

什么是道德? 热爱青年 百家号17-12-0615:23《什么是道德》 盖凡圣哲之学,不知有多少被后人歪曲谬解,长而久之,错误的反倒变成真理,害人不浅。 比如“道德”之说。绝大多数人理解成一种伦理概念。我们从小带大受到的洗脑…

马斯克的星际飞船SN10又炸了,但技术却向前迈出一大步!

来源:世界先进制造技术论坛(AMT)编辑:小艾 当地时间2021年3月3日,“钢铁侠”马斯克旗下太空探索公司Space X启动星际飞船(Starship)原型SN10的10公里飞行测试。在德克萨斯州进行高空试飞后,首次成功着陆&am…

【剑指offer】面试题27:二叉树的镜像(Java)

请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 / \ 7 2 / \ / \ 9 6 3 1 示例 1: 输入:root [4,2,7,1,3…

Elasticsearch 5.6.5 安装head插件

head安装包,下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip head 插件不能放在elasticsearch-5.6.5文件夹里,head 插件需要单独放,单独去执行;所以在elasticsearch-5.6.5同级目录下解压了 h…

MEMS传感器的下一轮技术变革

来源:麦姆斯咨询例如,红外探测器和微流控器件市场就在新冠肺炎大流行中获得了现象级的大幅增长。此外,疫情带来的居家隔离、远程办公,推动了5G部署、“非接触”语音交互以及数据中心等应用发展,从而加速了射频滤波器、…

【剑指offer】面试题28:对称的二叉树(Java)

请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1…

当量子计算遇到机器学习

作者: Dr.Alessandro Crimi 译者: 苏本如出品:CSDN(ID:CSDNnews)量子计算和机器学习已经成为当今炙手可热的话题。排除一些明显的炒作外,这当中也有一些真正的基础。随着传统计算技术的发展…

【剑指offer】面试题29:顺时针打印矩阵(Java)

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix [[1,2,3,4],[5,6,7,8],[9,10,11,12]…

王贻芳院士:我们的科技管理过度强调竞争,缺乏稳定支持

来源: 科学网作者:倪思洁“我们中国的GDP大概很快会实现世界第一,我们什么时候也能在纯科学方面对世界有重大贡献呢?”3月7日,全国人大代表、中科院院士、中科院高能物理研究所所长王贻芳在江苏代表团上发言说。王贻芳…

flannel无法跨主机ping通容器的解决方式

前几天,出现了无法跨主机ping通容器的情况,导致一个node机网络中断,无法访问,排查过程如下。 首先确认,宿主机node2是可以ping通容器[rootnode2 ~]# ping 10.1.19.3 PING 10.1.19.3 (10.1.19.3) 56(84) bytes of data…

【剑指offer】面试题30:包含min函数的栈(Java)

定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(…

城市大脑全球标准研究3:如何理解城市大脑中的“大脑”?

作者:刘锋前言:2015年城市大脑概念和定义提出时,城市大脑的本意是指应用范围,覆盖地域非常广大的城市级神经系统,是巨大的“脑“,这里的“大”与大数据的”大”含义相同,此后产业界也有认为城市…

Django 模板系统2

1. tags 2. 母版和继承   1. 母版   就是一个普通的HTML文件,提取多个页面的公共部分   减少代码量 修改十分方便   定义block块   2. 使用(继承)   在子页面中   {% entends base.html %}   重新修改block块中的内容   3…

记pbcms网站被攻击,很多标题被篡改(1)

记得定期打开网站看看哦! 被攻击后的网站异常表现:网页内容缺失或变更,页面布局破坏,按钮点击无效,...... 接着查看HTML、CSS、JS文件,发现嵌入了未知代码! 攻击1:index.html 或其他html模板页面的标题、关键词、描述被篡改(俗称,被挂马...),如下: 攻击2:在ht…

Nature撤稿!三年前微软在量子计算上的巨大胜利终究是个错误

文章来源:wired多年来,为了构建一台能够实际运行的量子计算机,微软一直押注一种称为马约拉纳费米子的量子粒子。三年前,由微软资助的研究团队在《自然》杂志发表的论文称,证明这种粒子确实存在,但这一发现遭…

【剑指offer】面试题31:栈的压入、弹出序列(Java)

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但…

分布式事务两阶段提交

前言 不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为…

【重磅收藏】智源发布《人工智能的认知神经基础白皮书》

来源:brainnews完整报告下载链接????https://event-cdn.baai.ac.cn/20210308/2020-brain-and-machine-intelligence-report.pdf(可点击「阅读原文」查看)《2020年人工智能的认知神经基础白皮书》指导老师:智源“人工智能的认知…

ConcurrentHashMap源码剖析(1.8版本)

目录 ConcurrentHashMap源码剖析数据结构NodeForwardingNodeTreeNodeTreeBin核心成员核心函数ConcurrentHashMap(int initialCapacity)initTableputgettreeifyBintryPresizetransferaddCountConcurrentHashMap源码剖析 基于jdk1.8。 参考文章: https://yq.aliyun.co…

【剑指offer】面试题32 - I:从上到下打印二叉树(Java)

从上到下打印出二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回&#xff1a; [3,9,20,15,7] 提示&#xff1a; 节点总数 < 1000 代码&#xff1a; /** * D…