力扣(LeetCode) ——100. 相同的树(C语言)

题目:相同的树



解题思路:

根据题目描述如果两个二叉树都为空,则两个二叉树相同。如果两个二叉树中只有一个为空,则两个二叉树一定不相同。

如果两个二叉树都不为空,那么首先判断它们的根节点的值是否相同,若不相同则两个二叉树一定不同,若相同,再分别判断两个二叉树的左子树是否相同以及右子树是否相同。递归地判断两个二叉树是否相同。

最终代码:

cpp 复制代码
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);
}

赶紧动起手来吧!!!

点击下方即可跳转
相同的树

相关推荐
疯狂的喵4 小时前
C++编译期多态实现
开发语言·c++·算法
scx201310045 小时前
20260129LCA总结
算法·深度优先·图论
2301_765703145 小时前
C++中的协程编程
开发语言·c++·算法
m0_748708055 小时前
实时数据压缩库
开发语言·c++·算法
小魏每天都学习5 小时前
【算法——c/c++]
c语言·c++·算法
智码未来学堂6 小时前
探秘 C 语言算法之枚举:解锁解题新思路
c语言·数据结构·算法
Halo_tjn6 小时前
基于封装的专项 知识点
java·前端·python·算法
春日见6 小时前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶
副露のmagic6 小时前
更弱智的算法学习 day59
算法
u0109272717 小时前
C++中的RAII技术深入
开发语言·c++·算法