怎样判断俩个二叉树一样C加加
要判断俩个二叉树是否一样,需要进行以下步骤:
-
判断俩个树的根节点的值是否相等,如果不相等则这俩个树一定不一样。
-
判断俩个树的左子树是否一样,如果不一样则这俩个树一定不一样。
-
判断俩个树的右子树是否一样,如果不一样则这俩个树一定不一样。
-
如果俩个树的根节点的值相等,左子树一样,右子树一样,那么这俩个树就是一样的。
C++代码实现如下:
bool isSameTree(TreeNode* p, TreeNode* q) {
if (!p && !q) return true; // 如果俩个树都为空,则认为它们是一样的
if (!p || !q) return false; // 如果其中一个树为空,则认为它们不一样
if (p->val != q->val) return false; // 如果俩个树的根节点值不等,则认为它们不一样
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right); // 递归判断左右子树是否一样
}
原文地址: https://www.cveoy.top/t/topic/Ml9 著作权归作者所有。请勿转载和采集!