树的子结构

#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;
}

 

posted @ 2014-09-29 10:41  曹守鑫  阅读(128)  评论(0编辑  收藏  举报