【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);
}
相关推荐
wuyoula3 分钟前
全新多平台电商代付商城源码
开发语言·c++·ui·小程序·php源码
玖疯子4 分钟前
IT疑难杂症诊疗室:系统性故障排查指南
开发语言·php
曹牧4 分钟前
Java Web 开发:servlet-mapping‌
java·数据仓库·hive·hadoop
码云数智-大飞5 分钟前
OpCache 原理深挖:从字节码缓存到预加载(Preloading)的实战配置
java·开发语言
handler018 分钟前
进程状态流转的本质:Linux 内核队列与底层数据结构解密
linux·运维·c语言·数据结构·c++·笔记·学习
YXWik616 分钟前
Claude Code
java
小旭952716 分钟前
分布式事务 Seata 详解 + 链路追踪 SkyWalking 实战
java·分布式·后端·信息可视化·skywalking
曹牧18 分钟前
Spring:@RequestMapping 注解匹配顺序
java·后端·spring
云烟成雨TD21 分钟前
Spring AI Alibaba 1.x 系列【44】多智能体 - 混合模式、监督者(SupervisorAgent)、自定义模式
java·人工智能·spring
_日拱一卒29 分钟前
LeetCode:23合并K个升序链表
java·数据结构·算法·leetcode·链表·职场和发展