反向方法在链表



我对我的链表程序做了很多开发。当我想要反转列表时它显示java堆空间错误(java。lang。outofmemoryerror)

这是我的反向方法:

    private void reverse()
    {
    Node start1=null;
    Node ptr1=start;
    while(ptr1!=null)
    {
        Node nnode=new Node();
        nnode.data=ptr1.data;
        if(isEmpty())
        {
            start1=nnode;
        }
        else
        {
            nnode.link=start1;
            start1=nnode;
        }
    }
    Node temp=start1;
    while(temp!=null)
    {
        System.out.println(temp.data);
        temp=temp.link;
    }
}

内存不足的原因是:

while(ptr1!=null)
{
    Node nnode=new Node();
    nnode.data=ptr1.data;
    if(isEmpty())
    {
        start1=nnode;
    }
    else
    {
        nnode.link=start1;
        start1=nnode;
    }
}

它不断产生新的Node,直到ptr1变成null,但它从不推进ptr1

您需要更改循环条件以检查start1,或者更改循环体以将ptr1移动到下一个节点。

相关内容

  • 没有找到相关文章

最新更新