class Solution {
public int reverse(int x) {
long xx = (long)x;
if (xx == 0) return 0;
int flag;
if (xx > 0){
flag = 1;
}
else{
flag = -1;
}
xx = Math.abs(xx);
long ans = 0;
while (xx > 0){
long cur = xx % 10;
ans = ans * 10 + cur;
xx /= 10;
}
ans *= flag;
if (ans > Integer.MAX_VALUE || ans < Integer.MIN_VALUE) return 0;
return (int)ans;
}
}