[题目连接](https://leetcode-cn.com/problems/reverse-integer/)
class Solution {
public:
int reverse(int x) {
int MAX = 2147483647;
int RET_MAX = MAX/10;
if(x == 0 || x == -2147483648) return 0;
int sign = (x > 0) ? 1 : -1;
int ret = 0;
int num = abs(x);
while(num % 10 == 0){
num /= 10;
}
while(num != 0){
int add = num % 10;
if((ret > RET_MAX) ||
(ret == RET_MAX && add > 7 && sign == 1) ||
(ret == RET_MAX && add > 8 && sign == -1)
){
return 0;
}
ret = ret * 10 + add;
num /= 10;
}
return ret*sign;
}
};