101. 对称二叉树

    科技2022-07-13  101

    101. 对称二叉树

    难度简单1054收藏分享切换为英文接收动态反馈

    给定一个二叉树,检查它是否是镜像对称的。

    例如,二叉树 [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

    进阶:

    你可以运用递归和迭代两种方法解决这个问题吗?

    class Solution { public boolean isSymmetric(TreeNode root) { return check(root,root); } public boolean check(TreeNode p,TreeNode q){ if(p==null && q==null) return true; if(p==null || q==null) return false; return p.val == q.val && check(p.left,q.right) && check(p.right,q.left); } }

    队列

    class Solution { public boolean isSymmetric(TreeNode root) { return check(root,root); } public boolean check(TreeNode u,TreeNode v){ Queue<TreeNode> q = new LinkedList<TreeNode>(); q.offer(u); q.offer(v); while(!q.isEmpty()){ u = q.poll(); v = q.poll(); if(u==null && v==null) continue; if((u==null || v==null)||(u.val!=v.val)){ return false; } q.offer(u.left); q.offer(v.right); q.offer(u.right); q.offer(v.left); } return true; } }
    Processed: 0.011, SQL: 8