我不明白为什么下面的方法有效。顾名思义,它删除链接列表中的所有空值,列表的前面称为head。我知道该变量的别名head是使用 创建的Node<E> current = head,但我无法弄清楚该方法如何设法维护原始头变量。从表面上看,电流随着每次迭代(current = current.next或)而变得越来越小,但不知何故,当打印出链表时,仍然保留了current.next = current.next.next一个完整且准确的变量。head我确信这个答案一定非常简单,但我却无法理解。
public void remove_nulls() {
while (head!=null && head.data==null) {
removeFirst();
}
if (head==null) {
return;
}
// List is non-empty and does not start with a null item
Node<E> current=head;
while (current.next!=null) {
if (current.next.data==null) {
current.next=current.next.next;
size--;
} else {
current = current.next;
}
}
}
慕码人8056858
相关分类