欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 【数据结构】二叉树OJ题_单值二叉树_相同的树

【数据结构】二叉树OJ题_单值二叉树_相同的树

2025/5/19 10:32:19 来源:https://blog.csdn.net/Asuku_/article/details/140555562  浏览:    关键词:【数据结构】二叉树OJ题_单值二叉树_相同的树

单值二叉树

题目

965. 单值二叉树 - 力扣(LeetCode)

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。

只有给定的树是单值二叉树时,才返回 true;否则返回 false

示例 1:

输入:[1,1,1,1,1,null,1]
输出:true

示例 2:

输入:[2,2,2,5,2]
输出:false

题解:

1、树为NULL:返回ture

2、树不为NULL:左(右)子树不为NULL:判断左(右)子树是否等于根

3、没有满足条件的则返回true

bool isUnivalTree(struct TreeNode* root) {if(root==NULL){return true;}
//左子树不为NULLif(root->left){if(root->left->val!=root->val){return false;}if(isUnivalTree(root->left)==false){return false;}}
//右子树不为NULLif(root->right){if(root->right->val!=root->val){return false;}if(isUnivalTree(root->right)==false){return false;}}return true;
}

相同的树

题目

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例 1:

输入:p = [1,2,3], q = [1,2,3]
输出:true

示例 2:

输入:p = [1,2], q = [1,null,2]
输出:false

示例 3:

输入:p = [1,2,1], q = [1,1,2]
输出:false

题解:

1、两棵树都为NULL,返回true

2、只有一棵树为NULL,返回false

3、都不为NULL,两棵树共同遍历

bool isSameTree(struct TreeNode* p, struct TreeNode* q) {//同时进行,同时比较
if (p == NULL && q == NULL) {return true;} else if (p == NULL || q == NULL) {return false;}if(p->val!=q->val){return false;}else{
//简便写法return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
//有一个false,整体为false;
//if(isSameTree(p->left,q->left)){
//return false;
//}   
//if(isSameTree(p->right,q->right)){
//return false;
//} }
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词