【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);
}
相关推荐
彩妙不是菜喵5 分钟前
C++ 中 nullptr 的使用与实践:从陷阱到最佳实践
开发语言·jvm·c++
L.EscaRC9 分钟前
Spring Boot 自定义组件深度解析
java·spring boot·后端
pengzhuofan15 分钟前
IntelliJ IDEA 常用快捷键
java·ide·intellij-idea
ANGLAL17 分钟前
17.MyBatis动态SQL语法整理
java·sql·mybatis
逐步前行24 分钟前
C数据结构--排序算法
c语言·数据结构·排序算法
lskisme27 分钟前
springboot maven导入本地jar包
开发语言·python·pycharm
SheepHappy31 分钟前
MyBatis-Plus 源码阅读(二)代码生成器原理深度剖析
java·源码阅读
雨白41 分钟前
重识 Java IO、NIO 与 OkIO
android·java
light_in_hand42 分钟前
内存区域划分——垃圾回收
java·jvm·算法
金銀銅鐵43 分钟前
[Java] JDK 9 新变化之 Convenience Factory Methods for Collections
java·后端