给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/same-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
和前面解决对称二叉树的思路一样,如果当前节点相等,继续往下进行比较,如果p和q同时为空,说明p和q是相同的。如果一个为空另一个不为空说明不相同。返回false。
程序:
bool isSameTree(TreeNode* p, TreeNode* q) {
if(!p && !q) //若同时为空则返回true
return true;
if(!p || !q) //其中一个不为空返回false
return false;
//循环继续进行,递归调用
return p->val == q->val && isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}