<剑指Offer>面试题26: 树的子结构

题目描述 牛客网

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

题目解读

  • 剑指Offer 149

代码

class Solution {
public:
    bool Equal(int a, int b){
        if(a-b == 0){
            return true;
        }
        else{
            return false;
        }
    }

    bool DoesTree1HaveTree2(TreeNode* pRoot1, TreeNode* pRoot2)
    {
        if(!pRoot2){
            return true;
        }

        if(!pRoot1){
            return false;
        }

        if(!Equal(pRoot1->val, pRoot2->val)){
            return false;
        }

        return DoesTree1HaveTree2(pRoot1->left, pRoot2->left) && DoesTree1HaveTree2(pRoot1->right, pRoot2->right);
    }

    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
    {
        bool result = false;

        if(pRoot1 && pRoot2){
            if(Equal(pRoot1->val, pRoot2->val)){
                result = DoesTree1HaveTree2(pRoot1, pRoot2);
            }

            if(!result){
                result = HasSubtree(pRoot1->left, pRoot2);
            }

            if(!result){
                result = HasSubtree(pRoot1->right, pRoot2);
            }
        }

        return result;
    }
};

总结展望

  • 二叉树的题目需要增强,目前比较薄弱
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 树 记录《剑指offer》中所有关于树的题目,以及LeetCode中的相似题目。 相关题目列表 题目 树是一种最常...
    wenmingxing阅读 1,448评论 2 13
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,055评论 0 13
  • 本文首发于我的个人博客:尾尾部落 0. 几个概念 完全二叉树:若二叉树的高度是h,除第h层之外,其他(1h-1)层...
    繁著阅读 3,196评论 3 49
  • 下面是我整理的,剑指Offer前五章所有的题目以及相关题和拓展题的题目和答案。代码的话放在github上,您可以下...
    kikido阅读 1,056评论 0 1
  • 2月23日,晨间日记复盘第二天 1.早上 8:00-10:00,两小时浏览网页,平静 2.上午10:00-11:0...
    敢比会重要阅读 150评论 0 0