判断两二叉树是否相等
题目描述:给出两个二叉树,请写出一个判断两个二叉树是否相等的函数。判断两个二叉树相等的条件是:两个二叉树的结构相同,并且相同的节点上具有相同的值。
示例:
input:{1,2},{1,#,2}
output:false
思路:
递归:1)判断根节点的值是否相等,2)判断左右子树是否相等
数据结构:
struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};
代码
bool isSameTree(TreeNode* p, TreeNode* q) {/*判断根节点是否为空*/if (p == nullptr || q == nullptr)return p == q;if (p->val != q->val)return false;return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);}
