0
点赞
收藏
分享

微信扫一扫

记录一次最简单也最傻的bug

程序员伟杰 2022-01-26 阅读 64

话不多说,先上bug:

        WARNING: A command line option has enabled the Security Manager
        WARNING: The Security Manager is deprecated and will be removed in a future release
        java.lang.NullPointerException: Cannot read field "next" because "<parameter1>" is null

!!!重点部分我已加粗变黄

查阅了很多资料,发现解说这方面问题的资料很少,于是在此记录一下:

本错误出现的原因是:

出现了单个结点不为空,但是它后面没有节点了,这个时候访问她的next域,就会报这个错,是不是刚看到这个错误的时候一下懵了。

对于我个人,出现此错误的原因如下:

        一、创建“伪头指针”(可以理解成自己创建哨兵结点)后,没有将其指向原先的头结点,这个时候,你再去返回伪指针的next(一般是解Leetcode题的时候,返回题目需要的头结点), 这个时候就会报这个错误。

·

       二、没有考虑输入的链表(头结点就取名为head吧)只有一个结点的情况,这个时候,如果访问她的next域就会报这个错误,解决方法是:在程序一开始就先对这种极端进行判断(一般需要直接返回head,注意:不能直接返回null,虽然head有可能为空,但是题目要求返回ListNode类型的数据,(如果head为null,访问 head不会报错))

下面附上出现此问题的题目:

下面附上出错的代码部分(加重标注出来的代码段,我之前没有加上,所以报了错,加上此代码段就好了):

 

举报

相关推荐

0 条评论