我在Java中有一个pop()
方法我想实现它。这是我的代码:
public E pop() {
if (top == null) {
throw new NoSuchElementException();
} else {
return top.element;
top = top.next;
}
}
但我的书是这样做的:
public E pop() {
if (top == null) {
throw new NoSuchElementException();
}
E tmp = top.element;
top = top.next;
return tmp;
}
我的peek()方法是否正确?
答案 0 :(得分:3)
由于之前行中的return语句,您的top=top.next;
将不会被执行。您必须保存临时弹出的对象以设置新的顶部。
答案 1 :(得分:2)
return
意味着两件事:
return
语句后面的值作为函数调用的结果您对return
的理解似乎表明您错过了第二点。
Java有点聪明,并且无法编译程序,因为它检测到top = top.next;
是无法访问的语句。并非所有语言/编译器都这样做。
你的窥视实现与书中的实现相同。
作为旁注: