给你两棵二叉树的根节点 p
和 q
,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
思路一:
bool isSameTree(struct TreeNode* p, struct TreeNode* q){
if(p == NULL && q == NULL){
return true;
}
if(p==NULL && q !=NULL){
return false;
}
if(p != NULL && q==NULL){
return false;
}
if(p->val == q->val){
return isSameTree(p->left , q->left) && isSameTree(p->right , q->right);
}
else
return false;
}
分析:
首先判断两个二叉树是否为空,再判断有值的情况,利用递归,若两个值相等则同时向左右子树继续进行判断
总结:
本题考察二叉树判断,利用了bfs算法将两个二叉树值全部判断得到答案