⛲⚡
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
⛲题目描述:
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。
只有给定的树是单值二叉树时,才返回 true
;否则返回 false
。
示例:
示例1:
输入:[1,1,1,1,1,null,1] 输出:true
示例2:
输入:[2,2,2,5,2] 输出:false
解题思路:
已知 A=B,B=C 可推出 A=C
⚡代码实现:
bool isUnivalTree(struct TreeNode* root) {
if(root == NULL)
return true;
if(root->left&&root->left->val! = root->val)
return false;
if(root->right&&root->right->val! = root->val)
return false;
return isUnivalTree(root->left) && isUnivalTree(root->right);
}
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
⛲题目描述:
给你两棵二叉树的根节点 p
和 q
,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例:
示例1:
输入:p = [1,2,3], q = [1,2,3] 输出:true
示例2:
输入:p = [1,2], q = [1,null,2] 输出:false
解题思路:
⚡代码实现:
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);
}