编程导航算法村第五关 | 使用链表实现栈
public class ImplementStacksBasedOnLinked {
private ListNode head;
private int size;
public ImplementStacksBasedOnLinked() {
this.head = new ListNode(0);
this.size = 0;
}
public void push(int data) {
ListNode newNode = new ListNode(data);
ListNode temp = head;
while (temp.next != null) {
temp = temp.next;
}
temp.next = newNode;
size++;
}
public int pop() {
if (size == 0) {
return -1;
}
ListNode next = head.next;
head.next = head.next.next;
size--;
return next.val;
}
public void display() {
ListNode temp = head.next;
while (temp != null) {
System.out.print(temp.val);
if (temp.next != null) {
System.out.print(",");
}
temp = temp.next;
}
System.out.println();
}
public static void main(String[] args) {
final ImplementStacksBasedOnLinked implementStacksBasedOnLinked = new ImplementStacksBasedOnLinked();
implementStacksBasedOnLinked.push(1);
implementStacksBasedOnLinked.push(2);
implementStacksBasedOnLinked.push(3);
implementStacksBasedOnLinked.push(4);
System.out.println(implementStacksBasedOnLinked.pop());
System.out.println(implementStacksBasedOnLinked.pop());
System.out.println(implementStacksBasedOnLinked.pop());
System.out.println(implementStacksBasedOnLinked.pop());
System.out.println(implementStacksBasedOnLinked.pop());
System.out.println(implementStacksBasedOnLinked.pop());
implementStacksBasedOnLinked.display();
}
}