本文共 746 字,大约阅读时间需要 2 分钟。
判断两个二叉树是否相同,需要确保它们的结构和节点值完全一致。我们可以通过递归的方式来比较这两个二叉树的每个节点。
首先,检查两个节点是否都是空的,如果是,则返回true。如果其中一个为空而另一个不为空,则返回false。接着,比较两个节点的值,如果不相同,返回false。否则,递归地比较左子树和右子树是否相同。
以下是实现代码:
判断两棵二叉树是否相同
给定两个二叉树,判断它们是否相同。两棵二叉树被认为是相同的,如果它们的结构和节点值完全一致。
示例1:
输入: 1 / \ 2 3 [1,2,3], [1,2,3]输出: true示例2:
输入: 1 / \ 2 2 [1,2], [1,null,2]输出: false示例3:
输入: 1 / \ 2 1 [1,2,1], [1,1,2]输出: false解决方案
class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if (p == nullptr && q == nullptr) return true; if (p == nullptr || q == nullptr) return false; if (p->val != q->val) return false; return isSameTree(p->left, q->left) && isSameTree(p->right, q->right); }}
转载地址:http://sfir.baihongyu.com/