public boolean isSymmetric(TreeNode root) {
		if(root == null) return true;
		Queue<TreeNode> lefts = new LinkedList<TreeNode>();
		Queue<TreeNode> rights = new LinkedList<TreeNode>();
		lefts.add(root.left);
		rights.add(root.right);
		while(!lefts.isEmpty()){
			TreeNode left = lefts.poll();
			TreeNode right = rights.poll();
			if(left != null && right != null){
				if(left.val != right.val) return false;
				lefts.add(left.right);
				rights.add(right.left);
				lefts.add(left.left);
				rights.add(right.right);
			} else if(!(left == null && right == null)) return false;
		}
		return true;
	}