【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);
}
相关推荐
Land032916 小时前
RPA替代方案:离线部署与Python扩展实战
开发语言·python·rpa
郝学胜-神的一滴16 小时前
Qt 高级开发 017:中文乱码
开发语言·c++·qt·程序人生·用户界面
Han.miracle16 小时前
JDK 1.7 HashMap 多线程扩容为什么会死循环?
java
程序员老乔16 小时前
01-项目架构设计与技术选型
java·人工智能
Chen_harmony16 小时前
二十二、动态内存管理
c语言·数据结构·算法
周杰伦fans16 小时前
C# LINQ 排序详解 —— OrderBy / OrderByDescending / ThenBy / ThenByDescending
开发语言·c#·linq
xyq202416 小时前
Python3 注释
开发语言
muddjsv16 小时前
Python核心语法分类详解:从入门到精通
开发语言·windows·python
我是唐青枫16 小时前
Kotlin Lambda 表达式详解:从基础语法到实战封装
开发语言·kotlin