public static boolean isSymmetric(TreeNode root) {
if(root==null)
return true;
Queue<TreeNode> a = new LinkedList<>();
Queue<TreeNode> b = new LinkedList<>();
if(root.left==null&&root.right==null){
return true;
}
a.add(root.left);
b.add(root.right);
while(!a.isEmpty()||!b.isEmpty()){
TreeNode tempA = a.remove();
TreeNode tempB = b.remove();
if(tempA==null&&tempB==null)
continue;
if((tempA==null||tempB==null)||tempA.val!=tempB.val){
return false;
}
a.add(tempA.left);
a.add(tempA.right);
b.add(tempB.right);
b.add(tempB.left);
}
return true;
}
Queue和Stack的区别
以及判断句中a.isEmpty()和a==null是不一样的