我正在浏览《Cracking the Coding Interview》来复习一些面试内容,然后看到了这个链表实现,也许已经有一段时间了,但它完全超出了我的理解范围。除了一个特定的代码行之外,我理解了大部分内容,而这个特定的代码行则让我感到困惑。我会在下面发布代码(参考资料中未提及语言,但似乎是Java)。
class Node {
Node next = null;
int data;
public Node(int d) {
data = d;
}
void appendToTail(int d) {
Node end = new Node(d);
Node n = this;
while(n.next != null) {
n = n.next;
}
n.next = end;
}
}
我对这行代码有点困惑:Node n = this
- 我不确定this
是指什么,除非它是在谈论next
- 那为什么不在那种情况下将其设置为null
?
appendToTail
? - Happy Green Kid Naps