【C语言题解】 | 572. 另一棵树的子树

572. 另一棵树的子树

  • [572. 另一棵树的子树](#572. 另一棵树的子树)
  • 代码

572. 另一棵树的子树

c 复制代码

该题目需要判断一二叉树是否为另一二叉树的子树

像此类,就不算是root的子树

c 复制代码

此题的思路为:

传入subRoot ,与root 相比较,判断二者是否相同

若与root不相同,则仍需与root的子树进行相比较,直至比较完。

(判断是否二叉树是否相同可参考相同的树)

代码

c 复制代码
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
    if(p == NULL && q == NULL)
    {
        return true;
    }
    if(p == NULL || q == NULL)
    {   
        return false;
    }
    if(p->val != q->val)
    {
        return false;
    }

    return  isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}

bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot)
{
    if( root == NULL)
        return false;

    return isSameTree(root,subRoot)
        || isSubtree(root->left,subRoot)
        || isSubtree(root->right,subRoot);
}
相关推荐
还债大湿兄10 分钟前
huggingface.co 下载有些要给权限的模型 小记录
开发语言·前端·javascript
bkspiderx22 分钟前
C++中的map容器:键值对的有序管理与高效检索
开发语言·c++·stl·map
Hard but lovely24 分钟前
Linux: 线程同步-- 基于条件变量 &&生产消费模型
linux·开发语言·c++
汤姆yu36 分钟前
基于python大数据的协同过滤音乐推荐系统
大数据·开发语言·python
爱学习的小道长38 分钟前
Python Emoji库的使用教程
开发语言·python
Sammyyyyy1 小时前
Symfony AI 正式发布,PHP 原生 AI 时代开启
开发语言·人工智能·后端·php·symfony·servbay
C+-C资深大佬1 小时前
C++逻辑运算
开发语言·c++·算法
阿华hhh1 小时前
项目(购物商城)
linux·服务器·c语言·c++
掘根1 小时前
【仿Muduo库项目】EventLoop模块
java·开发语言
方便面不加香菜1 小时前
基于顺序表实现通讯录项目
c语言·数据结构