leetcode641-设计循环双端队列
class MyCircularDeque {
class ListNode{
int val;
ListNode prev, next;
public ListNode(){
this.prev = this.next = null;
}
public ListNode(int val){
this.val = val;
this.prev = this.next = null;
}
}
ListNode head = new ListNode(), tail = new ListNode();
int capacity, size = 0;
public MyCircularDeque(int k) {
capacity = k;
head.prev = null;
head.next = tail;
tail.prev = head;
tail.next = null;
}
public boolean insertFront(int value) {
if(size == capacity) return false;
else{
ListNode node = new ListNode(value);
node.prev = head;
node.next = head.next;
head.next.prev = node;
head.next = node;
size++;
return true;
}
}
public boolean insertLast(int value) {
if(size == capacity) return false;
else{
ListNode node = new ListNode(value);
node.prev = tail.prev;
node.next = tail;
tail.prev.next = node;
tail.prev = node;
size++;
return true;
}
}
public boolean deleteFront() {
if(size == 0) return false;
else{
ListNode node = head.next.next;
head.next = node;
node.prev = head;
size--;
return true;
}
}
public boolean deleteLast() {
if(size == 0) return false;
else{
ListNode node = tail.prev.prev;
tail.prev = node;
node.next = tail;
size--;
return true;
}
}
public int getFront() {
if(size == 0) return -1;
else return head.next.val;
}
public int getRear() {
if(size == 0) return -1;
else return tail.prev.val;
}
public boolean isEmpty() {
return size == 0;
}
public boolean isFull() {
return size == capacity;
}
}
本文作者:xzh-yyds
本文链接:https://www.cnblogs.com/xzh-yyds/p/16587432.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步