赞
踩
对称二叉树 : 给定一个二叉树,检查它是否是镜像对称的。
思路 : 根据对称二叉树的特性, 可以使用递归去求解, 这里只需要判断左孩子的左边和右孩子的右边 或者 左孩子的右边和右孩子的左边是否相等或为空即可;
代码如下 :
- /**
- * Definition for a binary tree node.
- * struct TreeNode {
- * int val;
- * struct TreeNode *left;
- * struct TreeNode *right;
- * };
- */
- bool MyisSymmetric(struct TreeNode* Left,struct TreeNode* Right)
- {
- //当左右节点都为空时,时满足条件
- if(!Left&&!Right)
- return true;
- //当左右节点其中有一个为空时,不满足条件
- if(!Left||!Right)
- return false;
- //当左右节点不相等时,不满足条件
- if(Right->val!=Left->val)
- return false;
- //使用递归判断左孩子的左边和右孩子的右边,左孩子的右边和右孩子的左边是否满足条件
- return MyisSymmetric(Left->left,Right->right)&&MyisSymmetric(Left->right,Right->left);
- }
- bool isSymmetric(struct TreeNode* root) {
- //当跟节点为空时,满足条件
- if(root==NULL)
- return true;
- return MyisSymmetric(root->left,root->right);
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。