树的子结构

来源:互联网 发布:刷商务通软件网站 编辑:程序博客网 时间:2024/05/17 03:40

树的子结构

    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)    {        //if(pRoot1==NULL&&pRoot2==NULL)            //return true;        if(pRoot1==NULL||pRoot2==NULL)//只要一个为空就false,理解为Tree1如果左孩子不包含该子树,应该退出判断右孩子,所以不可以返回true            return false;        bool result = false;        if(pRoot1->val==pRoot2->val)            result = DoseTree1HasTree2(pRoot1,pRoot2);        if(!result)            result = HasSubtree(pRoot1->left,pRoot2);        if(!result)            result = HasSubtree(pRoot1->right,pRoot2);    return result;    }    bool DoseTree1HasTree2(TreeNode* pRoot1,TreeNode* pRoot2)    {//if(pRoot1==NULL&&pRoot2==NULL) // 该条件去掉注释也是正确的            //return true;        if(pRoot2 == NULL)            return true;        if(pRoot1 == NULL)                //相当于if(pRoot2!=NULL&&pRoot1==NULL)            return false;        if(pRoot1->val!=pRoot2->val)            return false;        return (DoseTree1HasTree2(pRoot1->left,pRoot2->left))&&            (DoseTree1HasTree2(pRoot1->right,pRoot2->right));    }


0 0
原创粉丝点击