
LeetCode:100. Same Tree相同的树(C语言)
树的结构相同,即节点的左、右子节点对应。 节点的值相同。 检查两个节点是否都为空,返回true。 检查两个节点中的一个为空,返回false。 比较两个节点的值,如果不等,返回false。 递归检查左子树和右子树是否相同。
发布日期:2021-05-08 18:43:43
浏览次数:12
分类:精选文章
本文共 943 字,大约阅读时间需要 3 分钟。
给定两个二叉树,编写一个函数来判断它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
问题分析
判断两个二叉树是否相同,需要满足以下条件:
解决思路
我们可以使用递归的方法来解决这个问题。递归的终止条件是:
- 当两个树中的一个为空时,另一个不为空,则它们不同。
- 当两个树的值不相同时,它们不同。
- 如果两个树的值相同时,再分别递归检查左子树和右子树是否相同。
递归的步骤:
代码实现
#includestruct TreeNode { int val; struct TreeNode* left; struct TreeNode* right;};bool isSameTree(struct TreeNode* p, struct TreeNode* q) { if (p == NULL && q == NULL) { return true; } else if (p == NULL || q == NULL) { return false; } else if (p->val != q->val) { return false; } else { return isSameTree(p->left, q->left) && isSameTree(p->right, q->right); }}
测试用例
示例1
- 输入:两个完全相同的二叉树。
- 输出:true。
示例2
- 输入:结构不同的二叉树,值部分重叠。
- 输出:false。
示例3
- 输入:结构相同但值不同的二叉树。
- 输出:false。
边界情况
- 两个空树:返回true。
- 一个空树,另一个非空:返回false。
- 单节点树:返回true。
总结
该函数通过递归检查两个二叉树的结构和节点值,能够准确判断两棵树是否相同。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月04日 18时01分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
修复搜狗、360等浏览器不识别SameSite=None 引起的单点登录故障
2019-03-05
EXTJS4.2——10.Tab+Iframe
2019-03-05
WEB基础——AJAX
2019-03-05
one + two = 3
2019-03-05
sctf_2019_easy_heap
2019-03-06
PyQt5之音乐播放器
2019-03-06
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
2019-03-06
SQL注入
2019-03-06
#2036:改革春风吹满地
2019-03-06
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
2019-03-06
P1379 八数码难题 ( A* 算法 与 IDA_star 算法)
2019-03-06
算法学习笔记: 珂朵莉树
2019-03-06
算法学习笔记:母函数详解
2019-03-06
Codeforces Round #664 题解(A ~ C)
2019-03-06
Problem A - Sequence with Digits (数学推导)
2019-03-06
Problem 330A - Cakeminator (思维)
2019-03-06
LeetCode75 颜色分类 (三路快排C++实现与应用)
2019-03-06
docker基础:容器生命周期管理命令
2019-03-06