思路:注意正负数、边界
public int reverse(int x) {
if (x == 0 || x == -2147483648) {
return 0;
}
Queue<Integer> queue = new LinkedList<Integer>();
int x1 = Math.abs(x);
int r1 = x1 / 10;
int r2 = x1 % 10;
while (r1 > 0) {
queue.offer(r2);
r2 = r1 % 10;
r1 = r1 / 10;
}
queue.offer(r2);
int reverseVal = 0;
int max = Integer.MAX_VALUE / 10;
while (!queue.isEmpty()) {
if (reverseVal > max) {
reverseVal = 0;
break;
}
reverseVal = reverseVal * 10 + queue.poll();
}
return reverseVal * (x1 / x);
}