老师请帮我看看为啥这段代码一直都抱空指针异常

来源:5-1 Leetcode中和链表相关的问题

weixin_慕UI5426068

2020-06-04

``

    ListNode dummyHead = new ListNode(-1);
    dummyHead.next = head;
    ListNode prev = dummyHead;

    while(prev.next != null){
        if(prev.next.val == val){
            ListNode delNode = prev.next;
            prev = prev.next.next;
            delNode.next = null;
        }else{
            prev = prev.next;
        }
    }
    return dummyHead.next;
}

``

写回答

1回答

liuyubobobo

2020-06-04

请给我这个函数整体的函数签名。以及你测试报空指针异常对应的完整测试函数。


另外,在 IDE 上,报空指针异常的时候,都会告诉你哪句话报了异常,可以基本看出是哪个变量的空导致的问题。单步跟踪试试看?看为什么这个变量会变成空?


继续加油!:)

0
2
liuyubobobo
回复
weixin_慕UI5426068
说明在某次循环中,调 prev.next 的时候,prev 是空。你的测试用例只有6个节点,而且我严重怀疑你继续减小测试用例,两三个节点也能复现这个错误。实际单步跟踪调试试试看,为什么 prev 会变成空?哪里变成的空?自己的实际代码执行和自己思考的逻辑是否一致?如果不一致,哪里有问题?进步就发生在这个过程中哦。加油!:)
2020-06-05
共2条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程