树的子结构

#include "stdafx.h"
#include <iostream>

using namespace std;
struct BinaryTreeNode{
    int value;
    BinaryTreeNode* left;
    BinaryTreeNode* right;
};
bool validTree(BinaryTreeNode* root1,BinaryTreeNode* root2){
    if(root2==NULL){
        return true;
    }
    if(root1==NULL){
        return false;
    }
    if(root1->value==root2->value){
        return validTree(root1->left,root2->left)&&validTree(root1->right,root2->right);
    }else{
        return false;
    }
}
bool hasSubTree(BinaryTreeNode* root1,BinaryTreeNode* root2)
{
    bool result=false;
    if(root1&&root2){
        if(root1->value==root2->value){
            result=validTree(root1,root2);
        }
        if(!result){
            result=validTree(root1->left,root2);
        }
        if(!result){
            result=validTree(root1->right,root2);
        }
    }
    return result;
}
int main()
{

    return 0;
}
原文地址:https://www.cnblogs.com/csxf/p/3999689.html