> 文章列表 > Leetcode 101. 对称二叉树

Leetcode 101. 对称二叉树

Leetcode 101. 对称二叉树

文章目录

  • 1.题目描述
  • 2.原题链接
  • 3.思路分析
  • 4.代码实现

1.题目描述

给你一个二叉树的根节点 root , 检查它是否轴对称。
示例1
Leetcode 101. 对称二叉树
示例2
Leetcode 101. 对称二叉树

2.原题链接

Leetcode 101. 对称二叉树

3.思路分析

子树为空,右子树不为空,不对称,return false
左子树不为空,右子树为空,不对称 return false
左右子树都为空,对称,返回true

此时已经排除掉了有空树的情况,那么剩下的就是左右子树都不为空的情况
比较二叉树外侧是否对称:通过左子树的左孩子,右子树的右孩子来比较。
比较内测是否对称,通过左子树的右孩子和右子树的左孩子来比较 。
Leetcode 101. 对称二叉树

如果两侧都对称就返回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);
}

如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!