题目描述

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

思路

  1. 空树不是任意一个树的子结构,如果 root1 与root2 中有一个为空树的话,返回False
  2. 判断是否存在子树:  
      1. 当rootA的值与rootB一致时,B是A的子结构(且A的左子树等于B左子树,A的右子树等于B右子树)
      2. 当A的左子树等于B,B是A的子结构
      3. 当A的右子树等于B,B是A的子结构
  3.   循环递归
# -*- 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):
if not pRoot1 or not pRoot2:
return False
return self.isrubtreeequl(pRoot1,pRoot2) or self.HasSubtree(pRoot1.left, pRoot2) or self.HasSubtree(pRoot1.right, pRoot2)
def isrubtreeequl(self,root1,root2):
if not root2:
return True
if not root1:
return False
return root1.val == root2.val and self.isrubtreeequl(root1.left,root2.left) and self.isrubtreeequl(root1.right,root2.right)

最新文章

  1. 【SFTP】使用Jsch实现Sftp文件下载-支持断点续传和进程监控
  2. MySQL 日期时间
  3. C# 序列化xml
  4. uva216 c++回溯法
  5. SoupUI学习资料
  6. 类似百度音乐唱片播放时CD图片不停旋转的实现
  7. 不可综合的verilog语句分析
  8. MVC与三层架构
  9. PHP控制反转(IOC)和依赖注入(DI)
  10. git 菜鸟入门
  11. Mycat 安装与启动
  12. 【ASP.NET Core】JSON Patch 使用简述
  13. 【转】iPython入门技巧
  14. [SimplePlayer] 8. 音视频同步
  15. dp题2
  16. Java学习必备书籍推荐终极版!
  17. 音频播放 音乐 MediaPlayer
  18. Django_终端打印原生SQL语句
  19. Ajax 随笔
  20. url get与post 请求长度限制

热门文章

  1. 全方面了解和学习PHP框架 PHP培训教程
  2. IDEA中Springboot静态文件加载(热部署)
  3. 2018山东省赛 G Game ( Nim博弈 && DP )
  4. pyinstaller打包的exe太大?你需要嵌入式python玄学 惊喜篇
  5. [CSP-S模拟测试]:山屋惊魂(模拟)
  6. vim编辑器快捷键
  7. Kylin CDH安装
  8. Linux shell - 除法保留小数点
  9. 搜索引擎算法研究专题七:Hilltop算法
  10. nodejs 文件操作