题目描述

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

时间限制:1秒;空间限制:32768K

解题思路

解题思路分为两步,主要用到了递归的方法。第一步先遍历树A,找到和树B根节点值相同的节点A';第二步判断以A'为根节点的子树中是否包含树B。

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:def HasSubtree(self, pRoot1, pRoot2):# write code hereresult = Falseif pRoot1!=None and pRoot2!=None:if pRoot1.val == pRoot2.val:result = self.iscomprise(pRoot1,pRoot2) #不写self.会报错if result != True:result = self.HasSubtree(pRoot1.left,pRoot2)if result != True:result = self.HasSubtree(pRoot1.right,pRoot2)return resultdef iscomprise(self, pRoot1, pRoot2):if pRoot2 == None:return Trueif pRoot1 == None:return Falseif pRoot1.val == pRoot2.val:return self.iscomprise(pRoot1.left, pRoot2.left) and self.iscomprise(pRoot1.right, pRoot2.right)

转载于:https://www.cnblogs.com/yucen/p/9912042.html

【剑指Offer】18树的子结构相关推荐

  1. 左神算法:判断 t1 树是否包含t2 树全部的拓扑结构(剑指 Offer 26. 树的子结构,Java版)

    本题来自左神<程序员代码面试指南>"判断 t1 树是否包含t2 树全部的拓扑结构"题目. 题目 剑指 Offer 26. 树的子结构 给定彼此独立的两棵树头节点分别为 ...

  2. 【LeetCode】剑指 Offer 26. 树的子结构

    [LeetCode]剑指 Offer 26. 树的子结构 文章目录 [LeetCode]剑指 Offer 26. 树的子结构 package offer;//定义树节点 class TreeNode{ ...

  3. 剑指offer:树的子结构

    题目 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解题思路 暴力做法 取出树A/B的前序.中序: 判断这两个数组是否A都包含B,是则true. 前序和中 ...

  4. 《剑指offer》-- 树的子结构、二叉树的镜像、二叉树的深度、平衡二叉树

    一. 树的子结构: 1.题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构. 2.解题思路: 这个题比较简单,利用递归的方式就可以判断B是不是A树的子结构 ...

  5. 【无取巧解法,易于理解!】剑指 Offer 26. 树的子结构

    看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 输 ...

  6. 剑指offer之树的子结构

    1 题目 输入两颗二叉树A和B,判断B是不是A的子结构(B树是A树的子结构) 比如:                   2     树A    3    5      树B   5         ...

  7. 剑指offer——判断树的子结构

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

  8. 剑指offer——26.树的子结构(不太熟)

    题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 知识点: 无 注意: 注意想法的递归实现(好好琢磨一下,不然可能会忘!) 代码实现: 具体实现分两步 ...

  9. LeetCode——剑指 Offer 26. 树的子结构

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

  10. 剑指offer 26 树的子结构

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

最新文章

  1. Shell脚本传递带有空格的参数
  2. php读取zip文件,php如何读取zip内容?(zip_entry_read函数的使用)
  3. Python Django 装饰器模式之二阶装饰器
  4. 又翻出来老电视剧看了看....
  5. matlab2014a 3d标定,[转载]张的matlab摄像机标定
  6. akshare双均线backtrader
  7. extundelete应用实战
  8. safari使用canvas引入域外的图片
  9. redis+mysql几种用法
  10. 神器 Nginx 的学习手册(建议收藏吃灰)
  11. 勉强算是面经——1.诺瓦科技
  12. OpenCV算法精解3--OpenCV中C++矩阵基本运算
  13. WIN10出现找不到WIFI解决办法
  14. bondprice+matlab,债券久期与凸度的Matlab实现
  15. Android Launcher分析和修改5——HotSeat分析
  16. 【LeetCode每日一题】——109.有序链表转换二叉搜索树
  17. Access内置SQL函数
  18. OpenSSL生成根证书CA及签发子证书
  19. VUE-CLI/VUE-ROUTER
  20. 使用ASP.NET Core构建RESTful API的技术指南

热门文章

  1. pywin32官方说明文档_为什么你应该看官方文档而不是搜索博客文章
  2. 新浪微博时间格式解析java_仿新浪微博格式化时间
  3. FinTech领域实践:乐维监控助力西南某上市城商行IT运维转型升级!
  4. keepalived 和 zookeeper的区别
  5. 面试中对hashMap的再次理解,负载因子为什么为0.75
  6. PostgreSQL 9.5.3中文手册正式发布(附pdf和chm)
  7. 主类main方法里面可以有不带public的子类 但是不能有接口
  8. 2748: [HAOI2012]音量调节
  9. 最好的Linux C/C++ IDE Windows ALL IDE,第一效率,第零浪漫
  10. c++学习笔记(4)