栈、队列
JustSleep
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 20. Valid Parentheses
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true解题思路:这里我们需要用一个栈,我们开始遍历输入字符...原创 2019-01-22 10:08:05 · 112 阅读 · 0 评论 -
LeetCode 173. Binary Search Tree Iterator
实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。 示例:BSTIterator iterator = new BSTIterator(root);iterator.next(); // 返回 3iterator.next(); // 返回 7iterator.hasNext(); //...原创 2019-01-23 10:44:50 · 123 阅读 · 0 评论 -
LeetCode 155. Min Stack
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...原创 2019-01-23 10:22:06 · 153 阅读 · 0 评论 -
LeetCode 230. Kth Smallest Element in a BST
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,4,null,null,...原创 2019-02-01 17:01:11 · 165 阅读 · 0 评论 -
LeetCode 199. Binary Tree Right Side View
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---解题思路:二叉树的层次...原创 2019-02-01 16:20:26 · 139 阅读 · 0 评论 -
LeetCode 145. Binary Tree Postorder Traversal
给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]解题思路:要保证根节点在左右子树访问完成后在访问根节点。对于任意节点p,先将p入栈,若p不存在左孩子或者右孩子,或者p存在左孩子或者右孩子但是已经被访问了,则可以直接输出节点p,并将其出栈,将出栈节点p标记为上一...原创 2019-01-22 15:13:34 · 126 阅读 · 0 评论 -
LeetCode 144. Binary Tree Preorder Traversal
给定一个二叉树,返回它的 前序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]解题思路:前序遍历的非递归实现,使用栈来进行辅助运算,先把根节点压入到栈中, 循环检测栈是否为空,若不空,则取出栈顶元素,保存其值,然后看其右子节点是否存在,若存在则push到栈中。再看其左子节点,若存在,则pus...原创 2019-01-22 13:51:18 · 114 阅读 · 0 评论 -
LeetCode 103. Binary Tree Zigzag Level Order Traversal
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]解题思路:使用两个栈保...原创 2019-01-22 13:13:26 · 119 阅读 · 0 评论 -
LeetCode 94. Binary Tree Inorder Traversal
给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]解题思路:需要用栈来做,思路是从根节点开始,先将根节点压入栈,然后再将其所有左子结点压入栈,然后取出栈顶节点,保存节点值,再将当前指针移到其右子节点上,若存在右子节点,则在下次循环时又可将其所有左子结点压入栈中。这样就保证了...原创 2019-01-22 11:18:19 · 109 阅读 · 0 评论 -
LeetCode 71. Simplify Path
以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须只有...原创 2019-01-22 10:52:13 · 274 阅读 · 0 评论 -
LeetCode 227. Basic Calculator II
实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+,-,*,/四种运算符和空格。 整数除法仅保留整数部分。示例1:输入: "3+2*2"输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5说明:你可以假设所给定的表达式都是有效的。请不要使用内置的库...原创 2019-05-08 20:20:25 · 210 阅读 · 0 评论
分享