码迷,mamicode.com
首页 > 其他好文 > 详细

树B是否为树A的子结构

时间:2017-03-01 00:52:55      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:log   style   treenode   als   set   重要   null   color   str   

    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的子结构

标签:log   style   treenode   als   set   重要   null   color   str   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!