给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
来源:力扣(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);
}
该博客介绍了一种用于检验两个二叉树是否相同的算法。通过递归方式,当节点值相等并且左右子树也相等时,认为两棵树相同。如果节点或其子树不匹配,则返回不同。这是一个基础的树结构比较问题,适用于数据结构和算法的学习。
177万+

被折叠的 条评论
为什么被折叠?



