二叉树数据结构定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
我的代码:
bool isSameTree(TreeNode* p, TreeNode* q) {
if (p == NULL && q == NULL) {
return true;
}
else if ((p == NULL && q != NULL) || (p != NULL && q == NULL)) {
return false;
}
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right) && p->val == q->val;
}
简洁代码:
bool isSameTree(TreeNode* p, TreeNode* q) {
if (!p && !q ) {
return true;
}
if (!p || !q) {
return false;
}
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right) && p->val == q->val;
}