剑指offer的题,自测都能通过,提交时牛客提示段错误

剑指off中的这2个题目:
1.反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=13&tqId=11168&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
2.链表中的倒数第k个节点
https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&tqId=11167&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking  
我反转链表的代码如下:

ListNode* ReverseList(ListNode* pHead) {
    stack s;
    while (pHead) {
        s.push(pHead);
        pHead = pHead->next;
    }
    ListNode* newHead = s.top();
    s.pop();
    ListNode* p = newHead;
    while (!s.empty()) {
        p->next = s.top();
        s.pop();
        p = p->next;
    }
    p->next = NULL;
    return newHead;
}
倒数第k的节点的解法如下:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
    if (pListHead == NULL)
        return NULL;
    stack s;
    while (pListHead != NULL) {
        s.push(pListHead);
        pListHead = pListHead->next;
    }
    for (size_t i = 0;i < k - 1;++i) {
        s.pop();
    }
    return s.top();
}
我在VS中的测试代码如下:
int main() {
    ListNode *p1 = new ListNode(1);
    ListNode *p2 = new ListNode(2);
    ListNode *p3 = new ListNode(3);
    ListNode *p4 = new ListNode(4);
    p1->next = p2;
    p2->next = p3;
    p3->next = p4;
    p4->next = NULL;

//
    //ListNode *ret = FindKthToTail(p1, 2); //输出3
    //cout << ret->val << endl;


    ListNode *ret = ReverseList(p1);
    while (ret) {
        cout << ret->val << " ";
        ret = ret->next;
    }
    cout << endl;//输出 4 3 2 1
    return 0;
}
为什么在牛客中提交就提示:
您的代码已保存
段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起
case通过率为0.00%
全部评论
第一题那个newhead直接赋值top有待考虑栈空不空
点赞 回复 分享
发布于 2019-01-09 23:37
第二题,可能本身炼表长度不够k。你对栈的pop,首先要确定栈不为空才能操作
点赞 回复 分享
发布于 2019-01-09 23:38
只看了反转链表,空链表就通不过了。后面的top K肯定也是有问题的。自测用例考虑不全所以才会这样。
点赞 回复 分享
发布于 2019-01-10 00:09
“stack s”?不用声明类型的吗?
点赞 回复 分享
发布于 2019-01-10 00:50
你好,请问在哪可以看剑指offer的题目
点赞 回复 分享
发布于 2019-04-01 14:54

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务