问道面试题:兑现pow(double x, int n)

问道面试题:实现pow(double x, int n)
leetcode上的题目,下面是我代码

class Solution {
public:
    double pow(double x, int n) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(n == 0)
            return 1;
        if(x == 0)
            return 0;
        if(n > 0)
            return x*pow(x, n - 1);
        if(n < 0)
            return 1 / pow(x, -n);
    }
};

为什么提示runtime error?我知道这个算法效率比较低,但是超时了应该是“Time Limit Exceeded”这个提示啊。。请问这么写还有什么错误么。。?
面试题 算法 c++

------解决方案--------------------
看n有多大咯,n太大递归太深会暴栈吧