为什么我在节点末尾插入空指针异常?

时间:2020-12-23 08:41:30

标签: java linked-list

我正在 geeksforgeeks 平台上解决链表问题,有人给了我一个问题,我会提到检查它的链接。我对此得到了空指针期望。 链接:- https://practice.geeksforgeeks.org/problems/linked-list-insertion-1587115620/1/?category[]=Linked%20List&difficulty[]=-1&page=1&query=category[]Linked%20Listdifficulty[]-1page1#

代码:-

 Node insertAtBeginning(Node head, int x)
{
    // code here
    Node inserting = new Node(x);
    inserting.next = head;
    return inserting;
}

// Should insert a node at the end
Node insertAtEnd(Node head, int x)
{
    // code here
    Node first = head;
    while(head.next != null){
        head = head.next;
    }
    Node inserting = new Node(x);
    head.next = inserting;
    return first;
    
}

1 个答案:

答案 0 :(得分:1)

关于问题描述:

<块引用>

提示:在最后插入时,请确保显式处理 NULL。

看起来如果列表没有初始化并且调用了 insertAtEnd 方法,'head' 参数为空。问题描述中的示例 2 给出了这种情况。

我建议像检查这样的空值:

Node insertAtEnd(Node head, int x){
  if(head == null){
    return new Node(x);
  }
  ...
}