Java 交换两个链表条目

Java 交换两个链表条目,java,linked-list,swap,Java,Linked List,Swap,我试图在链表中插入两个数字。必须对列表进行排序,以便在较大的数字之前插入较小的数字 列表首先添加较大的数字,然后在插入第二个较小的数字时,必须将较大的数字与较小的数字交换 我创建这个方法就是为了做到这一点,代码中的问题是,它首先添加较大的数字,然后添加较小的数字,然后再次添加较大的数字 我做错了什么 public void insertFirst(int id, double dd) { if (isEmpty()) { Link newLink

我试图在链表中插入两个数字。必须对列表进行排序,以便在较大的数字之前插入较小的数字

列表首先添加较大的数字,然后在插入第二个较小的数字时,必须将较大的数字与较小的数字交换

我创建这个方法就是为了做到这一点,代码中的问题是,它首先添加较大的数字,然后添加较小的数字,然后再次添加较大的数字

我做错了什么

public void insertFirst(int id, double dd)
{         
    if (isEmpty())
    {
        Link newLink = new Link(id, dd);
        newLink.next = first;
        first = newLink;
    }
    else
    {
        if (first.iData < id)
        {
            Link newLink = new Link(id, dd);
            newLink.next = first;
            first = newLink;
        }
        else
        {
            int iTempData = first.iData;
            double dTempData = first.dData;

            Link newLink = new Link(id, dd);
            newLink.next = first;
            first = newLink;

            Link newLink2 = new Link(iTempData, dTempData);
            newLink2.next = first;
            first = newLink2;
        }
    }
}
public void insertFirst(int-id,双dd)
{         
if(isEmpty())
{
Link newLink=新链接(id,dd);
newLink.next=first;
第一个=新链接;
}
其他的
{
if(first.iData
一个快速解决方案是

public void insertFirst(int id, double dd)
{         
    if (isEmpty())
    {
        Link newLink = new Link(id, dd);
        newLink.next = first;
        first = newLink;
    }
    else
    {
        if (first.iData < id)
        {
            Link newLink = new Link(id, dd);
            newLink.next = first;
            first = newLink;
        }
        else
        {
            int iTempData = first.iData;
            double dTempData = first.dData;

            first.iData = id; // replace first
            first.dData = dd; // (do not add new)

            Link newLink2 = new Link(iTempData, dTempData);
            newLink2.next = first;
            first = newLink2;
        }
    }
}
public void insertFirst(int-id,双dd)
{         
if(isEmpty())
{
Link newLink=新链接(id,dd);
newLink.next=first;
第一个=新链接;
}
其他的
{
if(first.iData

请注意,此函数实际上并不维护已排序的列表——它可以将新项添加为第一项或第二项,但如果传递的ID大于列表中已有的所有(比如十项)项,该怎么办?

最好给出定义了
isEmpty()
first
的代码。我明白你的意思。我只想知道如何为2个数字做这件事。接下来,我必须创建一个循环来遍历所有条目。