跳至主要內容
107, 二叉树的层序遍历II

一、题目描述

给你二叉树的根节点root,返回其节点值自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

示例 1

输入: root = [3, 9, 20, null, null, 15, 7]
输出: [[15, 7], [9, 20], [3]]

示例 2
输入: root = [1]
输出: [[1]]

示例 3
输入: root = []
输出: []


Mike大约 2 分钟binary treemediumqueuebinary treebreadth first search
102, 二叉树的层序遍历

一、题目描述

给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。

示例 1

输入: root = [3, 9, 20, null, null, 15, 7]
输出: [[3], [9, 20], [15, 7]]

示例 2
输入: root = [1]
输出: [[1]]

示例 3
输入: root = []
输出: []


Mike大约 2 分钟binary treemediumqueuebinary treebreadth first search
239, 滑动窗口最大值

一、题目描述

给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。

返回滑动窗口中的最大值

示例 1
输入: nums = [1, 3, -1, -3, 5, 3, 6, 7], k = 3
输出: [3, 3, 5, 5, 6, 7]
解释:

滑动窗口的位置                  最大值
-----------------------------------
[1  3  -1] -3  5  3  6  7       3
 1 [3  -1  -3] 5  3  6  7       3
 1  3 [-1  -3  5] 3  6  7       5
 1  3  -1 [-3  5  3] 6  7       5
 1  3  -1  -3 [5  3  6] 7       6
 1  3  -1  -3  5 [3  6  7]      7

Mike大约 3 分钟stack/queuehardarrayqueuesliding windowheadmonotonic queue
225, 用队列实现栈

一、题目描述

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppopempty)。

实现MyStack类:

  • void push(int x)将元素x压入栈顶。
  • int pop()移除并返回栈顶元素。
  • int top()返回栈顶元素。
  • boolean empty()如果栈是空的,返回true;否则,返回false

Mike大约 2 分钟stack/queueeasystackqueuedesign
232, 用栈实现队列

一、题目描述

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty)。

实现MyQueue类:

  • void push(int x)将元素x推到队列的末尾
  • int pop()从队列的开头移除并返回元素
  • int peek()返回队列开头的元素
  • boolean empty()如果队列为空,返回true;否则,返回false

Mike大约 3 分钟stack/queueeasystackqueuedesign
栈/队列

栈/队列

是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为栈顶,top)进行加入数据(push)和移除数据(pop)。因而按照后进先出(LIFO, Last In First Out)的原理运作,栈常用一维数组或链表来实现。常与另一种有序的线性数据集合队列相提并论。

使用两种基本操作:

  • 入栈:将元素放入栈的顶端。
  • 出栈:将栈顶端的元素移除。

Mike大约 1 分钟leetcodestackqueue