import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pRoot TreeNode类 * @return bool布尔型 */ public boolean isSymmetrical (TreeNode pRoot) { // write code here if(pRoot==null) return true; if(pRoot.left==null&&pRoot.right==null) return true; TreeNode p=pRoot.left; TreeNode q=pRoot.right; Queue<TreeNode> queue = new LinkedList<>(); queue.add(p); queue.add(q); while(!queue.isEmpty()) { p=queue.poll(); q=queue.poll(); if(p==null&&q==null) continue;//未发现不对称,继续 if(p==null||q==null||p.val!=q.val) { return false;//发现不对称,返回 } queue.add(p.left); queue.add(q.right); queue.add(p.right); queue.add(q.left); } return true; } }