【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);
}
相关推荐
San813_LDD1 小时前
[C语言]《Dev-C++ 报错解决手册(Day0607 精华版)》
java·前端·javascript
Anastasiozzzz2 小时前
从有限状态机到智能体图:传统 FSM 与 Agent Graph的演进
java·人工智能·python·ai
fqbqrr7 小时前
2606C++,C++构的多态
开发语言·c++
biter down8 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
wang09078 小时前
自己动手写一个spring之IOC_2
java·后端·spring
来杯@Java8 小时前
学生选课管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·maven·mybatis
threelab9 小时前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师729 小时前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
不知名的老吴9 小时前
线程的生命周期之线程“插队“
java·开发语言·python