随笔分类 -  Leetcode-栈

Leetcode练习(Python):栈类:第173题:二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。
摘要:题目: 二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 思路: 二叉搜索树使用中序,然后弹出栈底。 程序: # Definition for a binary tree node. # class Tre 阅读全文
posted @ 2020-05-16 10:15 桌子哥 阅读(244) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):栈类:第103题:二叉树的锯齿形层次遍历:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
摘要:题目: 二叉树的锯齿形层次遍历:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 思路: 使用层序遍历的思路,但是没有用到栈。 程序: # Definition for a binary tree node. # class T 阅读全文
posted @ 2020-05-16 09:50 桌子哥 阅读(337) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):栈类:第150题:逆波兰表达式求值:根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
摘要:题目: 逆波兰表达式求值:根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 思路: 使用辅助栈来 阅读全文
posted @ 2020-05-15 21:24 桌子哥 阅读(440) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):栈类:第145题:二叉树的后序遍历:给定一个二叉树,返回它的 后序 遍历。
摘要:题目: 二叉树的后序遍历:给定一个二叉树,返回它的 后序 遍历。 思路: 递归大法好,之后补充使用栈来实现的。 程序1:递归实现 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # sel 阅读全文
posted @ 2020-05-15 19:05 桌子哥 阅读(209) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):栈类:第144题:二叉树的前序遍历:给定一个二叉树,返回它的 前序 遍历。
摘要:题目: 二叉树的前序遍历:给定一个二叉树,返回它的 前序 遍历。 思路: 思路一使用老套路递归,思路二会补充使用栈的程序。 程序1:递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # 阅读全文
posted @ 2020-05-15 17:09 桌子哥 阅读(222) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):栈类:第225题:用队列实现栈:使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空
摘要:题目: 用队列实现栈:使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 。 注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from fr 阅读全文
posted @ 2020-05-15 16:37 桌子哥 阅读(508) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):栈类:用栈实现队列:使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。
摘要:题目: 用栈实现队列:使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 思路: 使用辅助栈。 程序: class MyQueue: def __in 阅读全文
posted @ 2020-05-15 10:40 桌子哥 阅读(465) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):栈类:第155题:最小栈:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。
摘要:题目: 最小栈:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 思路: 利用辅助栈来实现,辅助栈用 阅读全文
posted @ 2020-05-14 22:34 桌子哥 阅读(768) 评论(0) 推荐(1) 编辑