利用双栈实现链表操作
class CQueue {
private int count;
private ListNode head;
private ListNode tail;
public CQueue() {
count = 0;
}
public void appendTail(int value) {
ListNode node = new ListNode(value);
if (head == null) {
head = node;
tail = head;
}
else {
tail.next = node;
tail = tail.next;
}
count++;
}
public int deleteHead() {
if (head == null || count == 0) {
return -1;
}
else {
int val = head.val;
head = head.next;
count--;
return val;
}
}
}
本文介绍了如何使用双栈数据结构来实现链表的基本操作,如尾部添加元素和删除头部元素。CQueue类通过两个栈,一个用于插入,另一个用于删除,实现了高效的链表操作,保证了O(1)的时间复杂度。

1145

被折叠的 条评论
为什么被折叠?



