【C语言题解】| 100. 相同的树
2024-01-09 09:26:56
100. 相同的树
提示:
- 两棵树上的节点数目都在范围 [0, 100] 内
通过分析这个题目,可知道传入两颗二叉树的根节点,然后逐个比较这两个二叉树的结构和值是否都一样,不同返回false
,相同返回true
。
我们将一颗二叉树分为根节点,左子树,右子树,左子树与右子树均是一颗独立的树,同时比较根节点的值,以及判断两个根节点的左右节点是否都存在即可。
若两颗子树的节点均为空,则为空:
if(p == NULL && q == NULL)
{
return true;
}
若两颗子树的根节点左右子树不同(即结构不一致),则返回false
if(p == NULL || q == NULL)
{
return false;
}
若左右子树的跟节点值不同,则返回false
if(p->val != q->val)
{
return false;
}
继续递归节点的左右子树,并且返回true
or false
return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
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);
}
文章来源:https://blog.csdn.net/jokr_/article/details/135459589
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!