class Solution {
public int reverse(int x) {
// boolean flag = true;
// if(x<0){
// x = -x;
// flag = false;
// }
// List<Integer> list = new ArrayList<>();
// while(x>=10){
// int temp = x%10;
// x /=10;
// list.add(temp);
// }
// list.add(x);
// long res = 0;
// for(int i=0;i<list.size();i++){
// res = res*10 + list.get(i);
// }
// if(res>Integer.MAX_VALUE){
// return 0;
// }
// if(!flag){
// res = res*(-1);
// }
// return (int)res;
int res = 0;
while(x != 0){
int tail = x%10;
int newResult = res*10 + tail;
if((newResult-tail)/10 != res){
return 0;
}
res = newResult;
x/=10;
}
return res;
}
}