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

剑指offer源码系列-树的子结构

时间:2014-12-07 21:43:46      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   sp   on   2014   

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

#include<stdio.h>
#include<iostream>
using namespace std;
struct BinaryTreeNode{
    int value;
    BinaryTreeNode* left;
    BinaryTreeNode* right;
};
//递归判断结点是否相等
bool doesTree1HasTree2(BinaryTreeNode* aRoot,BinaryTreeNode* bRoot){
    if(bRoot==NULL{
        return true;
    }
    if(aRoot==NULL){
        return false;
    }
    if(aRoot->value!=bRoot->value){
        return false;
    }
    return doesTree1HasTree2(aRoot->left,bRoot->left)&&doesTree1HasTree2(aRoot->right,bRoot->right);
}

ListNode* hasSubtree(BinaryTreeNode* aRoot,BinaryTreeNode* bRoot){
    bool result = false;
    if(aRoot!=NULL&&bRoot!=NULL){
            if(aRoot->value==bRoot->value){
                result = doesTree1HasTree2(aRoot,bRoot);
            }
            if(!result){
                result = hasSubtree(aRoot->left,bRoot);
            }
            if(!result){
                result = hasSubtree(aRoot->right,bRoot);
            }
    }
    return result;
}
int main(){
    return 0;
}


剑指offer源码系列-树的子结构

标签:style   blog   io   ar   color   os   sp   on   2014   

原文地址:http://blog.csdn.net/hackcoder/article/details/41791355

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