在链表Java中,数据不会插入到用户输入的位置



我目前正在处理一个需要从用户输入的位置插入和删除数据的链表。但是,我在插入时遇到了一些错误。我遵循我在网上找到的代码,我不知道问题在哪里,我输入的数据没有插入到链表,每次我显示链表时,它显示我NULL,即使我确实在其中插入了一些数据。

下面是我的插入代码:
    public void addItemRequest(Node head, int item, int position)
    {
    Node prevNode = head; 
    Node newNode = new Node(item,null); 
    if (head==null)
    {
        return;
    }
    if (position == 0)
    {
        newNode.next = head; 
        return;
    }    
    int count = 0;
    while (count < position -1 && head.next != null)
    {
        head = head.next;        
        count++;       
    }
    Node currNode = head.next;
    head.next = newNode;
    head = head.next;
    head.next = currNode;      
    return;
}

下面是我的Node类代码:

class Node{
int num;
Node next;
Node()
{
    num=0;
    next=null;
}
Node(int num, Node next)
{
    this.num=num;
    this.next=next;
}
int getNum()
{
    return num;
}
Node getNext()
{
    return next;   
}
void setNext(Node next)
{
    this.next=next;
}
}

我希望有人能告诉我这里的问题是什么,谢谢。

你必须使head作为一个全局变量,只有它会工作

只使用一个新的临时节点

public void addItemRequest(Node head, int item, int position)
{
    Node prevNode = head; 
    Node newNode = new Node(item,null); 
    if (head==null)
    {
        head=newNode; 
        return;
    }
    if (position == 0)
    {
        newNode.next = head; 
        head = newNode; 
        return;
    }    
    int count = 0;
    while (count < position -1 && head.next != null)
    {
        prevNode = prevNode.next;        
        count++;       
    }
    newNode.next = prevNode.next;
    prevNode.next = newNode;      
    return;
}

检查现在。我已经改正了答案。head=newNode;必须加入if (position == 0)

如果你真的想欣赏,接受答案并投票给它。这样像你这样的人也能很容易地找到解决办法。

相关内容

  • 没有找到相关文章

最新更新