想在单链表的最后插入一个数据,但发生错误,应该怎么解决


public class Node {
    public int val;
    public Node next;

    public Node(int val) {
        this.val = val;
    }
    @Override
    public String toString()
    {
        return ""+val;
    }
}
class SingleLinkedList
{
    private Node head=new Node(0);
    public Node getHead(){
        return head;
    }


    public void insert(Node Node)
    {
        Node temp=head;
        while (true)
        {

            if (temp.next==null) {
                    break;
            }
            temp=temp.next;


        }
        temp.next=Node;


        } public void display()
    {
        if (head.next==null)
        {
            System.out.println("空");
            return;
        }

        Node temp=head.next;
        while (true)
        {
            if (temp==null)
                break;
       
        System.out.print(temp+" ");
        temp=temp.next;
        }
    }
    public void addByOther(int y)
    {
        Node temp=head;
        while (temp.next!=null)
        {
            temp=temp.next;
        }
        temp.next.val=y;
        display();
    }





}






class Test5 {
    public static void main(String[] args) {
        Node node1 = new Node(1);
        Node node2 = new Node(2);
        Node node3 = new Node(3);
        Node node4 = new Node(4);
        Node node5 = new Node(5);
        Node node6 = new Node(6);
        SingleLinkedList singleLinkedList = new SingleLinkedList();
        singleLinkedList.insert(node1);
        singleLinkedList.insert(node2);
        singleLinkedList.insert(node3);
        singleLinkedList.insert(node4);
        singleLinkedList.insert(node5);
        singleLinkedList.insert(node6);
        singleLinkedList.display();
        singleLinkedList.find(3);
        singleLinkedList.addByOther(2);
        singleLinkedList.display();




    }
}

img

img