【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);
}
相关推荐
骇客野人几秒前
用python实现一个查询当天天气的MCP服务器
服务器·开发语言·python
XiaoLeisj2 分钟前
Android 文件存储实战:从应用私有目录读写到网络文件落盘与公共存储接入
android·java·网络·文件操作
天空属于哈夫克34 分钟前
拒绝被动响应:企业微信主动调用接口高阶方案
开发语言·python
茶本无香5 分钟前
JVM调优介绍 + 面试题标准答案(高级)
java·jvm·面试
2501_941982058 分钟前
Go 语言实现企业微信外部群消息主动推送方案
开发语言·golang·企业微信
创梦流浪人8 分钟前
soli-admin一款开箱即用的RBAC后台项目
java·spring boot·vue3·springsecurity
南山love9 分钟前
spring-boot多线程并发执行任务
java·开发语言
希望永不加班11 分钟前
SpringBoot 配置 HTTPS(自签名证书+正式证书)
java·spring boot·后端·spring·https
dmlcq13 分钟前
一文读懂 PageQueryUtil:分页查询的优雅打开方式
开发语言·windows·python
不会写DN13 分钟前
JS 最常用的性能优化 防抖和节流
开发语言·javascript·ecmascript