Reverse integer

Reverse digits of an integer.

Example1:

x = 123,

return 321
Example2:

x = -123,

return -321

Return 0 if the result overflows and does not fit in a 32 bit signed integer

Solution:

Time: O(logn)
Space: O(1)

public class Solution {
    public int reverse(int A) {
        int sign = A >= 0 ? 1 : -1;
        long reversed = 0;
        long n = A;
        if (A < 0) n = -n;
        while (n > 0) {
            reversed = reversed * 10 + n % 10;
            n = n / 10;
        }
        if (reversed > Integer.MAX_VALUE || reversed < Integer.MIN_VALUE) return 0;
        return (int) (sign * reversed);
    }
}

class Solution {
    public int reverse(int x) {
        if (x == Integer.MIN_VALUE) return 0;
        int sign = 1;
        if (x < 0) sign = -1;
        x = Math.abs(x);
        int reversed = 0;
        while (x > 0) {
            if (reversed > Integer.MAX_VALUE / 10) {
                return 0;
            }
            int val = x % 10;
            reversed = reversed * 10 + val;
            x = x / 10;
        }
        return reversed * sign;
    }
}