请问报空指针异常的原因是?
来源:5-3 设立链表的虚拟头结点 Remove Linked List Elements
tataxqy
2019-05-09
反转链表这道题nextnode=nextnode.next;
这句话报空指针异常的原因是?
ListNode reverseList(ListNode head) {
ListNode pre = null;
ListNode cur = head;
ListNode nextnode=cur.next;
while(cur !=null){
cur.next = pre;
pre = cur;
cur = nextnode;
nextnode=nextnode.next;
}
return pre;
}写回答
1回答
-
你的cur保存的是当前节点。nextnode是cur之后的节点。但是,当cur指向链表最后一个节点的时候,nextnode为null,调用nextnode=nextnode.next抛空指针异常。
任意链表都会复现这个错误。创建一个含有两个元素的链表,跟踪一下你的程序,试试看?仔细观察一下程序运行过程中,各个变量是怎么变化的,最后nextnode为什么会为空?单步调试跟踪,是学习算法的重要方式哦。进步,就发生在这个过程中:)
加油!:)
012019-05-10
相似问题