Description:
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.
/**
* Definition for a binary tree node.
* 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 (p == q);
if(p->val == q->val){
if(isSameTree(p->left, q->left) && isSameTree(p->right, q->right))
return true;
else return false;
}else return false;
}
};