如何使用数组元素构建链接列表?

时间:2016-05-03 20:44:38

标签: java

假设我从头开始构建了一个Linked List类,例如:

LEFT JOIN

然后假设我有一个名为myBooks的数组(Book [])。我怎样才能优雅地遍历数组并使用上述类从中构建链接列表?换句话说,myBooks [0]将被设置为head,myBooks [1]将成为链中的下一个链接,直到myBooks [myBooks.length-1]成为尾巴?

注意:我没有列出BookLink类中通常会有的所有方法,例如: getNextLink或get / setMyBook。如果他们有必要回答这个问题,请随意参考这些方法,就像它们存在一样。谢谢!

3 个答案:

答案 0 :(得分:0)

很容易:

BookLink current = null;
for (int i = books.length - 1; i >= 0; i--) {
  BookLink newHead = new BookLink(books[i]);
  newHead.setNextLink(current);
  current = newHead;
}

向后迭代并从最后构建它。

答案 1 :(得分:0)

或者像这样。使用虚拟head并在完成后返回head.nextLink可能有助于构建循环。

BookLink head = new BookLink(null);
BookLink ptr = head.

for(int i = 0; i < books.length; i++) {
    ptr.nextLink = new BookLink(books[i]);
    ptr = ptr.nextLink;
}

return head.next;

答案 2 :(得分:-1)

假设您已正确实施了链接列表,您可以像这样简单。

public void insert(Book[] books) {
    for (int i = 0; i < books.length; i++) {
        insert(books[i]);
    }
}

public void insert(Book book) {
    if (this.head == null) {
        this.head = new BookLink(book);
    } else {
        Node temp = this.head;
        while (temp.getNext() != null) {
            temp = temp.getNext();
        }
        temp.setNext(new BookLink(book));
    }
}