这道题主要考察利用画图解决抽象问题。
具体分析参考剑指offer28.
时间和内存消耗以及源代码如下:

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool isAssymetric(struct TreeNode* pRight, struct TreeNode* pLeft)
{
if (pRight == NULL && pLeft == NULL)
{
return true;
}
if (pRight == NULL || pLeft == NULL)
{
return false;
}
if (pRight->val != pLeft->val)
{
return false;
}
return isAssymetric(pRight->right, pLeft->left)
&& isAssymetric(pRight->left, pLeft->right);
}
bool isSymmetric(struct TreeNode* root){
if (root == NULL)
{
return true;
}
return isAssymetric(root->left, root->right);
}
本文探讨了如何通过递归算法判断一棵二叉树是否为对称二叉树,即其左右子树是否互为镜像。核心在于比较左右子树的节点值,并递归检查左右子树的对称性。提供了详细的C语言实现代码。

3604

被折叠的 条评论
为什么被折叠?



