题目介绍

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

题目分析

这个可以通过依次遍历的方法,采用递归来完成计算。

源代码

/*
struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}
};*/
class Solution
{
public:bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2){int res=0;if(pRoot1!=NULL&&pRoot2!=NULL){if(pRoot1->val==pRoot2->val){res=compare_tree(pRoot1,pRoot2);}if(!res){res=HasSubtree(pRoot1->left,pRoot2);}if(!res){res=HasSubtree(pRoot1->right,pRoot2);}}return res;}bool compare_tree(TreeNode* pRoot1, TreeNode* pRoot2){if(pRoot2 == NULL){return true;}if(pRoot1 == NULL){return false;}if(pRoot1->val == pRoot2->val){return compare_tree(pRoot1->left,pRoot2->left) && compare_tree(pRoot1->right,pRoot2->right);}return false;}
};

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

  1. 判断两棵二叉树是否同构,三种实现方式(递归、队列、堆栈)

    一.同构的概念: 给定两棵二叉树 T1 和 T2,如果T2可以通过若干次左右孩子互换就变成T1,那么我们称这两棵树是同构的 例1:下图两棵树同构,因为对T2,交换A左右孩子:交换B左右孩子,交换G左右 ...

  2. python代码判断两棵二叉树是否相同

    python代码判断两棵二叉树是否相同 给定两个二叉树,编写一个函数来校验它们是否相同.如果两个树在结构上相同,并且结点具有相同的值,则认为它们是相同的. 判断两个二叉树是否是相同的,相同的依据是 二 ...

  3. 剑指offer:输入一棵二叉树,判断该二叉树是否是平衡二叉树。

    输入一棵二叉树,判断该二叉树是否是平衡二叉树. //后续遍历二叉树,遍历过程中求子树高度,判断是否平衡 class Solution { public:bool IsBalanced(TreeNode ...

  4. Python算法——判断两棵二叉树是否相等

    要求: 如何判断两颗树是否相等?(两棵树相等是指这两课树有着相同的结构,并且在相同位置上的结点有相同的值) 分析: 如果两颗二叉树root1, root2相等, 那么root1和root2结点的值相同 ...

  5. LeetCode/LintCode 题解丨一周爆刷分治法:合并两棵二叉树

    描述 给出两棵二叉树,当你用其中一棵覆盖另一棵时,两棵树的一些节点会发生重叠,而其他节点则不会重叠. 您需要将它们合并到一棵新的二叉树中. 合并的规则是如果两个节点重叠,则将节点值加起来作为合并节点的 ...

  6. 6.36③ 若已知两棵二叉树B1和B2皆为空,或者皆 不空且B1的左、右子树和B2的左、右子树分别相似, 则称二叉树B1和B2相似。试编写算法,判别给定两 棵二叉树是否相似。

    6.36③  若已知两棵二叉树B1和B2皆为空,或者皆 不空且B1的左.右子树和B2的左.右子树分别相似, 则称二叉树B1和B2相似.试编写算法,判别给定两 棵二叉树是否相似. 要求实现下列函数: S ...

  7. PHP 输入一棵二叉树和一个数字n,要求找出路径和为n的所有路径

    1 <?php 2 #输入一棵二叉树和一个数字n,要求找出路径和为n的所有路径 3 4 class Node { 5 public $data = null; 6 public $parent ...

  8. 二叉树:合并两棵二叉树

    给定两棵二叉树,把它们合并成一个二叉树,合并规则如下:如果两棵树的对应节点不为空,把这两个节点的和作为新树的节点,如果有一个节点为空,则把非空的节点作为新树的节点. 分析:使用先序法,递归把两棵树的节 ...

  9. 判断两棵二叉树是否相等(Java实现)

    判断树是否相等,就是判断树中的每一个节点是否相等,根节点和根节点做比较,根节点的左子节点和左子节点作比较,右子节点和右子节点作比较,直到没有节点比较为止,中间只要一个节点不相等,就返回false,只有 ...

  10. 判定两棵二叉树是否相似以及左右子树交换、层次编号

    #include <iostream> using namespace std; #include <malloc.h> #include <stdio.h> #d ...

最新文章

  1. python使用ctype中”OSError: [WinError 193] %1 不是有效的 Win32 应用程序“的解决办法
  2. mysql怎样删除上一行_mysql如何删除第一行数据
  3. JavaScript公共运行库
  4. Spring学习笔记十二---泛型依赖注入
  5. MongoDB数据库和集合的基本操作
  6. smarty3.X新命名规范引起的'Call of unknown method'
  7. 冰点文库下载器2021新版 v3.2.16
  8. c#操作Excel表格插入行和列代码
  9. python excel表格去重_EXCEL数据如何去重? Python:这事我比你熟
  10. Andriod studio 学习 之 Recyclerview
  11. 基于ARMv8架构的mini操作系统
  12. linux 安装mmdetection 踩坑笔记
  13. 考研英语一和二的区别
  14. shell脚本(一)批量修改图片名称
  15. VQA系列论文(五)
  16. Vsftpd完全攻略
  17. 高速数据采集卡的机理分析
  18. 看到一句话,感受良多
  19. python笔记--列表、集合和字典推导式
  20. 联想网盘、钉钉、销售易:企业减负增效的SaaS解决方案

热门文章

  1. Python + selenium之组织unittest单元测试用例
  2. swift 3.0 协议笔记
  3. CodeForces 255C. Almost Arithmetical Progression (DP)
  4. 一步一步asp.net_三层构架总结
  5. 索益Mike的excel商品操作
  6. 时间操作(JavaScript版)—页面显示格式:年月日星期几
  7. JNDI 是什么,怎么理解
  8. oracle中取得当前日期,前一天,当前月,前一个月
  9. C++ memset 踩坑(转载)
  10. 错误的参数个数或无效的参数属性值_数据处理-利用 python进行异常值分析