剑指Offer之面试题18:树的子结构

来源:互联网 发布:上海国金网络朱文君 编辑:程序博客网 时间:2024/05/01 19:32

所有代码均通过G++编译器测试,仅为练手纪录。


//面试题18:树的子结构

//题目:输入两棵二叉树AB,判断B是不是A的子结构。


//面试题18:树的子结构//题目:输入两棵二叉树A和B,判断B是不是A的子结构。bool TreeCompre(BinTreeNode *pRootTree,BinTreeNode *pSubTree){    if(NULL == pSubTree)    {        return true;    }    else if(NULL == pRootTree)    {        return false;    }        if(pRootTree->m_nValue != pSubTree->m_nValue)    {        return false;    }        bool bEqualLeft = TreeCompre(pRootTree->m_pLeft, pSubTree->m_pLeft);    bool bEqualRight = TreeCompre(pRootTree->m_pRight, pSubTree->m_pRight);        return bEqualLeft && bEqualRight;}bool TreeHasSubTree(BinTreeNode *pRootTree,BinTreeNode *pSubTree){    if(NULL == pRootTree || NULL == pSubTree)    {        return false;    }        bool bResult = false;        if(pRootTree->m_nValue == pSubTree->m_nValue)    {        bResult = TreeCompre(pRootTree,pSubTree);    }        if(!bResult)    {        bResult = TreeHasSubTree(pRootTree->m_pLeft, pSubTree);    }        if(!bResult)    {        bResult = TreeHasSubTree(pRootTree->m_pRight, pSubTree);    }        return bResult;}


ZhaiPillary

2016-12-25




0 0