每天一题LeetCode【第53天】

T101. Symmetric Tree【Easy

题目

给一个二叉树,确认这个是不是自己的镜像(即围绕其中心对称)

例如,下面这个二叉树 [1,2,2,3,4,4,3] 是对称的:

    1
   / \
  2   2
 / \ / \
3  4 4  3

但是 [1,2,2,null,3,null,3]

    1
   / \
  2   2
   \   \
   3    3

注意: 如果用递归和迭代解决更好

思路

递归向下遍历,如果有错返回 false,如果没有就返回 true.

代码

代码取自 Top Solution,稍作注释

 public boolean isSymmetric(TreeNode root) {
        boolean b=true;
       if (root==null) return true; 
        b=isSymmetric(root.left, root.right);
       return b;
    }
  
boolean isSymmetric(TreeNode left, TreeNode right) {
    if (left==null && right==null) return true; 
    // 若不对称,则返回 false
    if (left ==null|| right==null) return false; 
    // 比较左右节点以及左右节点的两个节点是否对称,然后返回
      return left.val == right.val && isSymmetric(left.left, right.right)&& isSymmetric(left.right, right.left);
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容