判断两个树是否相等
1.如果传进来的两个指针都是NULL,那么return true,代表相同。 2.如果传进来的两个指针一个是NULL一个不是NULL;或者两个都不是NULL,但是它们的value值不相等,return false。 3.通过上面的判断可以确定:两个节点都不是NULL,并且两个节点的值相等,那么就分别递归判断两个节点的 左子树和右子树。
代码实现:
bool isSameTree(TreeNode* p, TreeNode* q) { if(!p && !q) { return true; } if((!p && q) || (p && !q) || (p->val != q->val)) { return false; } return isSameTree(p->left, q->left) && isSameTree(p->right, q->right); }