Deque的相关函数
例题:简化路径(使用双端队列)
/** * 使用Deque维护当前的目录名 * '/'分割后会存在以下情况: * 1、空字符串 * 2、'.' * 3、'.. * 4、目录名 */ class Solution { public String simplifyPath(String path) { String[] names = path.split("/"); Dequedeq = new LinkedList<>(); for (String name: names) { if ("".equals(name) || ".".equals(name)) continue; else if ("..".equals(name)) { // 跳回上一级目录 if (!deq.isEmpty()) deq.pollLast(); } else { deq.offerLast(name); } } String ans = ""; if (deq.isEmpty()) ans += "/"; else { while (!deq.isEmpty()) { ans += "/"; ans += deq.pollFirst(); } } return ans; } }