LintCode-剑指Offer-(245)子树

原创 2015年11月21日 20:29:12
class Solution {
public:
    /**
    * @param T1, T2: The roots of binary tree.
    * @return: True if T2 is a subtree of T1, or false.
    */
   bool isSubtree(TreeNode *T1, TreeNode *T2) {
        if ( T2 == NULL )return true;
        if ( T1 == NULL )return false;
        bool result = false;
        result = TreeCmp(T1, T2);
        //将所有结果或起来就可以,因为只要有一个地方是子树,就为子树,但这样貌似会比较慢
        return isSubtree(T1->left, T2) || isSubtree(T1->right, T2) || result;
    }
    //TreeCmp用来比较当前是否是当前节点开始的子树,这个函数很重要
    bool TreeCmp (TreeNode *T1, TreeNode *T2) {
        if (T1 != nullptr && T2!=nullptr && T1->val == T2->val) {
            return TreeCmp(T1->left,T2->left) && TreeCmp (T1->right,T2->right);
        }
        if (T1 == nullptr && T2 == nullptr) {
            return true;
        }
        return false;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

牛客网刷题--剑指offer(两个栈实现队列)

牛客网给出的题目要求是用两个栈数据结构实现一个队列的push和pop操作。 两个栈实现队列这是很好理解的。因为栈的特性是后进先出(LIFO),而队列的特性是先进先出(FIFO),那两个栈连在一块儿,...
  • liu_sheng_1991
  • liu_sheng_1991
  • 2016年06月29日 17:56
  • 410

【剑指Offer学习】【所有面试题汇总】

剑指Offer学习  剑指Offer这本书已经学习完了,从中也学习到了不少的东西,现在做一个总的目录,供自已和大家一起参考,学如逆水行舟,不进则退。只有不断地学习才能跟上时候,跟得上技术的潮流!目录第...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月15日 07:26
  • 18490

剑指offer(java版)

面试题 2 :实现单例模式 1. 饿汉式单例类 public class SingletonClass { private static final SingletonClass insta...
  • houfeng30920
  • houfeng30920
  • 2016年05月07日 14:01
  • 8681

剑指offer——快速排序

快速排序是目前所有排序中性能较好的一种算法,最好情况和平均情况下时间复杂度均为O(nlogn),最坏的情况下时间复杂度为O(n^2)。快速排序采用递归,用空间换取时间。由于使用了递归,因此需要额外的存...
  • u010425776
  • u010425776
  • 2016年03月06日 15:45
  • 1531

剑指offer题目及答案

剑指offer最近在牛客网上刷剑指offer的题目,现将题目和答案总结如下
  • panda_AJ
  • panda_AJ
  • 2017年04月06日 19:07
  • 1642

剑指offer 学习笔记 + 程序注释

空类,有构造函数的类,有虚函数的类,不同的类的大小 #include "D:\C++OBJECT\main.h" class A0 { //空类型 }; class A1 { //有构造函数和...
  • yangxuefeng09
  • yangxuefeng09
  • 2015年03月31日 09:29
  • 1859

剑指offer 算法 (综合)

题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 解析:现在才发现,原来字符串转数字特蛋疼,很多细节,以前从来就没考虑过,鲁棒性啊!!!   首先,得定义个标志位L...
  • u011385799
  • u011385799
  • 2015年08月31日 18:51
  • 299

剑指Offer——Python答案

说明题目 二维数组中的查找替换空格从头到尾打印链表重建二叉树用两个栈实现队列旋转数组的最小数字斐波那契数列跳台阶变态跳台阶矩形覆盖二进制中1的个数数值的整数次方调整数组顺序使奇数位于偶数前面链表中倒...
  • haoji007
  • haoji007
  • 2016年10月16日 08:38
  • 506

剑指offer-面试题30:最小的K个数

题目:输入n个数,找出其中最小的K个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1,2,3,4。 思路:这道题目是典型的top K问题。两种方法:(1)如果允许改变数列,半...
  • moses1213
  • moses1213
  • 2016年04月06日 21:10
  • 630

剑指offer--重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5...
  • kangaroo835127729
  • kangaroo835127729
  • 2015年04月10日 22:57
  • 1979
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LintCode-剑指Offer-(245)子树
举报原因:
原因补充:

(最多只允许输入30个字)