Leetcode 101. 对称二叉树
文章目录
- 1.题目描述
- 2.原题链接
- 3.思路分析
- 4.代码实现
1.题目描述
给你一个二叉树的根节点 root , 检查它是否轴对称。
示例1
示例2
2.原题链接
Leetcode 101. 对称二叉树
3.思路分析
左子树为空,右子树不为空,不对称,return false
左子树不为空,右子树为空,不对称 return false
左右子树都为空,对称,返回true
此时已经排除掉了有空树的情况,那么剩下的就是左右子树都不为空的情况
比较二叉树外侧是否对称:通过左子树的左孩子,右子树的右孩子来比较。
比较内测是否对称,通过左子树的右孩子和右子树的左孩子来比较 。
如果两侧都对称就返回true ,只要有一侧不对称就返回false
4.代码实现
bool DFS( struct TreeNode * left ,struct TreeNode * right ){//左右子树 都为空 if( left ==NULL && right ==NULL){return true ; }//有一个为空 else if( left ==NULL || right ==NULL){return false ; }//都不为空 比较节点的值else if(left->val != right->val ){return false ;}return DFS(left->left,right->right)//左子树的左孩子,右子树的右孩子&& DFS(left->right ,right->left); //左子树的右孩子和右子树的左孩子}
bool isSymmetric(struct TreeNode* root)
{if( root==NULL) return true ;return DFS ( root->left ,root->right);
}
如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!