题目描述

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

<?php/*class TreeNode{var $val;var $left = NULL;var $right = NULL;function __construct($val){$this->val = $val;}
}*/
function HasSubtree($pRoot1, $pRoot2)
{// write code here$result=false;//只有当两个树都不为空时 才继续判断if($pRoot2!==null && $pRoot1!==null){//如果两个根节点匹配上了if($pRoot1->val==$pRoot2->val){$result=PanDuan($pRoot1, $pRoot2);}//如果根节点匹配不到   去左子树看看是否能匹配到if(!$result){$result = HasSubtree($pRoot1->left, $pRoot2);}//如果根节点匹配不到   去右子树看看是否能匹配到if(!$result){$result = HasSubtree($pRoot1->right, $pRoot2);}}return $result;
}function PanDuan($node1,$node2){if($node2==null){//说明子树2查找完毕return true;}if($node1==null){return false;}if($node1->val != $node2->val){return false;}return PanDuan($node1->left,$node2->left) && PanDuan($node1->right,$node2->right);}

牛客网(剑指offer) 第十七题 树的子结构相关推荐

  1. 《牛客网 剑指Offer前20题》

    <剑指Offer> 牛客网 前20道题 前言知识 面试题1:二维数组中的查找 面试题2:二维数组中的查找 面试题3:从头到尾打印链表 面试题4:重建二叉树 ***** 面试题5:两个栈实现 ...

  2. 牛客网剑指offer编程实践1-10题

    牛客网剑指offer编程实践1-10题 1.二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...

  3. Day5.牛客网剑指offer 67题之43-54题(java代码)

    文章目录 Day5.牛客网剑指offer 67题之43-54题 43.左旋转字符串 44.翻转单词顺序列 45.扑克牌顺序 46.孩子们的游戏 47.求1+2+...+n 48.不用加减乘除做加法 4 ...

  4. Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer

    剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...

  5. 牛客网剑指offer java 全部题解

    经过数月的努力,终于更完了牛客网的66道剑指offer,以下的顺序和大家在牛客网的顺序是一样的(排序也花了不少时间),希望对大家找工作/提高算法能力能起到些许帮助. 每天一道剑指offer-二维数组中 ...

  6. 牛客网剑指offer——Java题解

    剑指offer JZ1 二维数组中的查找 题目描述 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...

  7. 牛客网剑指offer(Python版)

    剑指offer官网:  https://www.nowcoder.com/ta/coding-interviews 写在前面的话 刷剑指offer的时候只需要提交函数核心部分,但是在公司实际笔试时却需 ...

  8. 牛客网剑指offer编程实践41-50题

    41.和为S的连续正数序列 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两 ...

  9. 牛客网剑指Offer C++题解

    [二维数组中的查找]:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是 ...

  10. 牛客网剑指offer编程实践51-66题

    51. 构建乘积数组 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不 ...

最新文章

  1. eclipse工程设置项目jre
  2. alpinestars与丹尼斯_骑行靴|丹尼斯VS A星心得分享,它和普通鞋子不同之处竟在这里!...
  3. 我喜欢的JavaScript编程风格
  4. linux为用户添加sudo权限
  5. elasticsearch 二、elasticsearch-head安装
  6. count 数字计数(bzoj 1833)
  7. html post前md5加密,post提交及MD5加密
  8. python 重定向stdout_Python 犄角旮旯--重定向 stdout
  9. Java 使用反射处理注解
  10. 一程序员被判 9 个月:因薪酬等问题离职,rm -f * 删库,瘫痪 6 个小时
  11. Python在Linux地址已在使用,python在linux下的使用
  12. flink表聚合函数(Table aggregate Functions)
  13. Contest-hunter 暑假送温暖 SRM08
  14. 51单片机倒计时蜂鸣器c语言,基于51单片机的倒计时器设计
  15. 基于java+ssh+mysql实现的共享自行车单车租赁|出租管理系统项目源代码
  16. 民警使用计算机应当遵守哪些保密规定,公安民警保密责任书
  17. H3C交换机配置简单教程
  18. C语言中TC20是什么意思,c语言tc20下载
  19. win11修改DNS | win11改如何修改DNS服务器地址
  20. 安装Ubuntu系统卡在载入界面,显示正在安装open vm tools

热门文章

  1. 【蓝桥杯Java_C组·从零开始卷】第三节、while循环do while循环for循环(超重点)break终止循环continue结束本次循环
  2. 系统级性能分析工具 — Perf
  3. ORA-29861: 域索引标记为 LOADING/FAILED/UNUSABLE
  4. 有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数 都是多少
  5. Maven学习小结(七 生命周期[转])
  6. Debian 升级到 PHP 7,并支持并行安装
  7. 《PHP求职宝典》--Web设计页面笔记
  8. matlab都有什么接口,介绍MATLAB与C++的几种接口方式
  9. python验证数学原理_一起学opencv-python九(性能的测量和优化与图像处理的数学原理)...
  10. Java黑皮书课后题第10章:*10.19(Mersenne素数)