树 - 树的子结构

一,树的子结构

题目描述

输入两棵二叉树A与B,判断B是不是A的子结构。


我的代码

bool BackTrack(BSTNode *p1, BSTNode *p2){
    if(p1 == NULL && p2 == NULL){
        return true;
    }
    if(p1 == NULL || p2 == NULL){
        return false;
    }
    if(p1->data == p2->data){
        return BackTrack(p1->lchild, p2->lchild) && BackTrack(p1->rchild, p2->rchild);
    } else {
        return false;
    }
}

bool hasSubTree(BSTNode *p1, BSTNode *p2){
    bool result = false;
    result = BackTrack(p1, p2);
    if(!result){
        result = BackTrack(p1->lchild, p2);
    }
    if(!result){
        result = BackTrack(p1->rchild, p2);
    }
    return result;
}

你可能感兴趣的:(树 - 树的子结构)