100.相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
解题方法
bool isSameTree(struct TreeNode* p, struct TreeNode* q)
{
if (p == NULL && q == NULL)
return true;
if (p == NULL || q == NULL)
return false;
if (p->val != q->val)
return false;
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}
101.对称二叉树
题目描述
解题方法
递归
bool equal(struct TreeNode * leftRoot, struct TreeNode * rightRoot)
{
if (leftRoot == NULL && rightRoot == NULL)
return true;
if (leftRoot == NULL || rightRoot == NULL)
return false;
// if (leftRoot->val != rightRoot->val)
// return false;
return (leftRoot->val == rightRoot->val)
&& equal(leftRoot->left, rightRoot->right)
&& equal(leftRoot->right, rightRoot->left);
}
bool isSymmetric(struct TreeNode* root)
{
if (root == NULL)
return true;
return equal(root->left, root->right);
}