- 双向列表,即每个节点包含对前一个节点和后一个节点的引用。
- 可以被当作堆栈、队列或者双端队列使用
- 当作为栈使用时,可以利用方法:push(), pop(),此时需要使用
Deque<> stk = new LinkedList<>();
来初始化
push() 和 pop() 是头插头取,offerLast() 和 pollLast() 是尾插尾取,在有些题目中,使用前者可能导致答案反转,例如 797. 所有可能的路径,所以要使用后者。
- 当作为队列使用时,可以利用方法 offer(), poll(),即尾插头取,符合队列的定义先进先出
- 当被使用为普通的列表时,没有 offer()、poll() 等方法,只有 add()、remove(index)等方法
List<Integer> ls = new LinkedList<>();