题解 | #删除有序链表中重复的元素-II#
反转数字
http://www.nowcoder.com/practice/1a3de8b83d12437aa05694b90e02f47a
**模拟题**
关键点在于溢出的处理
```cpp
class Solution {
public:
/**
*
* @param x int整型
* @return int整型
*/
int reverse(int x) {
// write code here
int sign = 1, val = 0;
if(x < 0) sign = -1, x = -x;
while(x > 0){
int res = x % 10;
x /= 10;
if(sign == 1){
if(val > INT_MAX / 10 || (val == INT_MAX / 10 && INT_MAX % 10 < res)) return 0; //正溢出
}else{
if(val > INT_MAX / 10 || (val == INT_MAX / 10 && INT_MAX % 10 + 1 < res)) return 0; //负溢出
}
val = val * 10 + res;
}
return sign * val;
}
};
```
public:
/**
*
* @param x int整型
* @return int整型
*/
int reverse(int x) {
// write code here
int sign = 1, val = 0;
if(x < 0) sign = -1, x = -x;
while(x > 0){
int res = x % 10;
x /= 10;
if(sign == 1){
if(val > INT_MAX / 10 || (val == INT_MAX / 10 && INT_MAX % 10 < res)) return 0; //正溢出
}else{
if(val > INT_MAX / 10 || (val == INT_MAX / 10 && INT_MAX % 10 + 1 < res)) return 0; //负溢出
}
val = val * 10 + res;
}
return sign * val;
}
};
```