/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param p TreeNode类 
     * @param q TreeNode类 
     * @return bool布尔型
     */
    bool isSameTree(TreeNode* p, TreeNode* q) {
        // write code here
        if (p==NULL&&q==NULL) return true;
        if (p==NULL||q==NULL) return false;
        return (p->val==q->val)&&isSameTree(p->left, q->left)&&isSameTree(p->right, q->right);
    }
};

实现思路:两树相等 等价于 两树根节点的值相等且两树的左右子树分别相等,即可递归实现

边界条件:空树与空树相等,空树与非空树不等