首页 > 其他 > 详细

树B是否为树A的子结构

时间:2017-03-01 00:52:55      阅读:265      评论:0      收藏:0      [点我收藏+]
    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2){
        if (pRoot1 == NULL) return false;//这一点很重要,要不然if (pRoot1->val == pRoot2->val)会报空指针的错误
        if (pRoot2 == NULL) return false;
        
        bool res = false;
        
        if(pRoot1->val == pRoot2->val){
            res = DoseTree1HasTree2(pRoot1,pRoot2);
        }
        if(!res){
            res = DoseTree1HasTree2(pRoot1->left,pRoot2);
        }
        if(!res){
            res = DoseTree1HasTree2(pRoot1->right,pRoot2);
        }
        return res;
    }
    
   bool DoseTree1HasTree2(TreeNode* tree1, TreeNode* tree2)
    {
        if (tree1 == NULL &&tree2 == NULL) return true;//tree1和tree2都为空
        else if (tree1 == NULL && tree2!=NULL) return false;
        else if (tree1 != NULL && tree2==NULL) return true;
        else 
        {
            if (tree1->val != tree2->val) return false;
            return DoseTree1HasTree2(tree1->left, tree2->left) && DoseTree1HasTree2(tree1->right, tree2->right);
        }
        
    }

树的子结构

树B是否为树A的子结构

原文:http://www.cnblogs.com/xiuxiu55/p/6481702.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!