-
- struct Node
- {
- Node *left;
- Node *right;
- Node()
- {
- left = right = NULL;
- };
- };
- bool Judge(Node *leftRoot, Node *rightRoot)
- {
- if(leftRoot->val != rightRoot->val)//判断数据是否相同
-
{return false;}
- if(leftRoot != NULL && rightRoot != NULL)
- {
- if( Judge(leftRoot->left, rightRoot->right) && Judge(leftRoot->right, rightRoot->left) )
- //判断左树和右树是否对称同时存在,
- return true;
- else
- return false;
- }
- else if(leftRoot == NULL && rightRoot == NULL) //都为空视为对称
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- bool JudgeTree(Node *root)
- {
- if(root == NULL)
- return true;
- return Judge(root->left, root->right);
- }
判断二叉树左右对称
最新推荐文章于 2024-01-09 13:55:53 发布
本文介绍了一种判断二叉树是否对称的方法。通过对二叉树的左右子树进行递归比较,检查每层节点值是否相等且结构是否镜像对称。文章详细解释了递归函数的实现逻辑,并提供了完整的代码示例。

1198

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



