Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
思路:如果两颗二叉树A,B的根结点都存在且他们的值相同,那么就继续判断A的左子树与B的左子树,A的右子树与B的右子树是否一样。可以采用递归的方法实现。
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution {
public:
bool isSameTree(TreeNode *p, TreeNode *q)
{
if(p==NULL && q==NULL)
return true;
else if(p && q && p->val == q->val)
return isSameTree(p->left , q->left) && isSameTree(p->right , q->right);
else
return false;
}
};