![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
半夏
这个作者很懒,什么都没留下…
展开
-
LeetCode-206 反转链表 题解
代码var reverseList = function(head) { let p1 = head let p2 = null while (p1) { const tmp = p1.next p1.next = p2 p2 = p1 p1 = tmp } return p2 };思路时间 / 空间复杂度代码中有单个 while 循环体,时间复杂度为 O(n)。临时变量是单个值,无数组对象矩阵,空间复杂度为 O(1)。...原创 2021-06-09 14:54:16 · 95 阅读 · 0 评论 -
LeetCode-155 最小栈 题解
题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(val) —— 将元素 val 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[nul原创 2021-06-07 15:59:35 · 131 阅读 · 0 评论 -
二叉树深度优先 之 先中后序遍历
二叉树深度优先 之 先中后序遍历昨天刷了 leetcode 上面有关二叉树的三个遍历问题。 总结一下各自 非递归(迭代) 的算法。二叉树的遍历广度 优先遍历深度 优先遍历先 序遍历 => 根 - 左 - 右中 序遍历 => 左 - 根 - 右后 序遍历 => 左 - 右 - 根先序遍历思路如下代码var preorderTraversal = function(root) { const stack = [] const res =原创 2021-06-06 11:44:21 · 230 阅读 · 0 评论 -
LeetCode-144 二叉树的前序遍历 JavaScript题解
思路递归方法:深度优先搜索先访问根结点根结点存在子节点访问左节点访问右节点非递归方法:以显示栈的方式模仿递归。初始化栈,并将根节点入栈;当栈不为空时:弹出栈顶元素 n,并将值添加到结果中如果 n 的右节点存在,入栈如果 n 的左节点存在,入栈输出结果数组题解方法一(非递归)var preorderTraversal = function(root) { const stack = [] const res = [] // 1.若存在根结点,入原创 2021-06-05 17:22:16 · 166 阅读 · 1 评论 -
LeetCode-20 有效的括号 题解
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。解题思路:利用栈的思想,先入后出。JavaScript虽然没有栈,但是其数组可以用作栈来存放。因此,可以遍历数组,遇到左括号入栈(新建数组存放),遇到右括号,与栈顶匹配。若类型匹配,使其出栈,对比下一个右括号与栈顶元素。直到新建数组元素为空或不匹配输出false。注释判断数组是否为 空 或原创 2021-06-05 11:13:46 · 93 阅读 · 0 评论