如何将链表附加到另一个链表的末尾?

我正在尝试将两个链接列表连接在一起,其中第二个列表将紧跟在第一个列表的尾部之后。在我的追加方法中,我想获取要连接在一起的两个列表,然后将最后一个列表连接到末尾。我无法将当前位置分配给第二个列表的头部。关于我的下一步是什么有什么建议吗?


public class Link {


public long dData;                 // data item

public Link next;                  // next link in list

// -------------------------------------------------------------


public Link(long d) // constructor

{

    dData = d;

}

// -------------------------------------------------------------


public void displayLink() // display this link

{

    System.out.print(dData + " ");

}

// -------------------------------------------------------------

}  // end class Link


public class FirstLastList {


private Link first;               // ref to first link

private Link last;                // ref to last link

// -------------------------------------------------------------


public FirstLastList() // constructor

{

    first = null;                  // no links on list yet

    last = null;

}

// -------------------------------------------------------------


public boolean isEmpty() // true if no links

{

    return first == null;

}

// -------------------------------------------------------------


public void insertFirst(long dd) // insert at front of list

{

    Link newLink = new Link(dd);   // make new link


    if (isEmpty()) // if empty list,

    {

        last = newLink;             // newLink <-- last

    }

    newLink.next = first;          // newLink --> old first

    first = newLink;               // first --> newLink

}

// -------------------------------------------------------------


public void insertLast(long dd) // insert at end of list

{

    Link newLink = new Link(dd);   // make new link

    if (isEmpty()) // if empty list,

    {

        first = newLink;            // first --> newLink

    } else {

        last.next = newLink;        // old last --> newLink

    }

    last = newLink;                // newLink <-- last

}


牧羊人nacy
浏览 170回答 2
2回答

红颜莎娜

在while (list1 != null) {&nbsp; &nbsp; current = current.next;}list1未更改,您将完成取消引用 NULL 指针奇怪的是,您在参数中获得了两个列表,而操作不是静态的并且不返回结果。对我来说,如果不是静态的,则操作必须接收一个列表并将其附加到当前(this)列表的末尾,在参数中迭代列表并使用insertLast添加每个元素您还可以按值接收参数,最好使用引用而不是白白复制它/它们

qq_花开花谢_0

在 append() 方法中:Link current = first;while(current.next != null) {&nbsp; &nbsp; current = current.next;}current.next = list2.first;当您的当前节点到达最后一个节点时,.next它将为空。那是您加入第二个列表的时候。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java