假设我从头开始构建了一个Linked List类,例如:
LEFT JOIN
然后假设我有一个名为myBooks的数组(Book [])。我怎样才能优雅地遍历数组并使用上述类从中构建链接列表?换句话说,myBooks [0]将被设置为head,myBooks [1]将成为链中的下一个链接,直到myBooks [myBooks.length-1]成为尾巴?
注意:我没有列出BookLink类中通常会有的所有方法,例如: getNextLink或get / setMyBook。如果他们有必要回答这个问题,请随意参考这些方法,就像它们存在一样。谢谢!
答案 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));
}
}