我必须从链表堆栈中推送和弹出,这是我实现的将对象推送到堆栈顶部的代码,但是鉴于构造函数,我不知道如何从堆栈中弹出内容。
这是我要推送的代码
public void push(Q obj) {
Node<Q> node = new Node(obj);
if (top == null) {
top = node;
}
else {
node.setNext(top);
top = node;
}
length++;
}
这是我为Pop提供的构造函数
Public T pop() {
//Change the return statement
return null;
}
这些是我在代码顶部定义的变量
private int length = 0;
private Node<Q> top = null;
答案 0 :(得分:2)
首先,它不是pop的构造函数。阅读什么是构造函数以及如何在类中使用它。
在您的代码中,Node被推到链接列表的最前面,并且顶端指向最近插入的节点。
因此,在弹出期间,您需要删除当前顶部并修改顶部以指向被压入的倒数第二个节点。将当前顶部存储到某个临时变量,将顶部节点指向第二个倒数第二个节点,然后返回该临时变量。
public T pop() {
if(top!=null){
Node<Q> temp = top;
top = top.next;
temp.next = null;
return temp;
}
return null;
}