树的子结构

题目描述

输入两颗二叉树A,B,判断B是不是A的子结构。
class Solution {
public:

    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
    {
       bool result= false;
        if(pRoot1!=NULL&&pRoot2!=NULL){
        if(pRoot2->val == pRoot2->val)
            result=equal(pRoot1,pRoot2);
        if(!result)
            result=equal(pRoot1->left,pRoot2);
        if(!result)
            result=equal(pRoot1->right,pRoot2);
        }
        return result;
    }
    bool equal(TreeNode* pa,TreeNode* pb)
        {
        if(pb==NULL)
            return true;
        if(pa==NULL)
            return false;
        if(pa->val!=pb->val)
            return false;
        return equal(pa->left,pb->left)&&equal(pa->right,pb->right);
    }
};

 

posted on 2016-04-02 22:19  RenewDo  阅读(80)  评论(0编辑  收藏  举报

导航