请问报空指针异常的原因是?
来源: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
相似问题