代码出现空指针异常

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

InformationDS

2020-03-07

  • 在主方法内向removeElements方法内传入head参数为null时就会触发,导致无法进行下面的判断,调试时在方法内部进行判断head是否为空前就触发了异常,不知道如何解决

class Solution {
public ListNode removeElements(ListNode head, int val) {

    if (head == null){
        return null;
    }

    while(head.val == val && head != null){
        ListNode delNode = head;
        head = head.next;
        delNode.next = null;
    }

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

public static void main(String[] args) {
    ListNode head = null;
    Solution s = new Solution();
    String s1 = s.removeElements(head,1).toString();
    System.out.println(s1);
}

}

写回答

1回答

liuyubobobo

2020-03-07

head 传 null,removeElements 就返回了 null,你的 s.removeElements(head,1).toString()
里相当于调用了 null 的 toString,空指针异常。


继续加油!:)

0
0

玩转数据结构

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

6221 学习 · 1704 问题

查看课程