剑指 Offer 32 - III. 从上到下打印二叉树 III 2022-07-08| 算法 剑指 Offer | 二叉树 - BFS - 层序遍历 题目描述请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
例如:给定二叉树: $[3,9,20,null,null,15,7]$,
12345 3 / \9 20 / \ 15 7
返 ...
Read more 剑指 Offer 32 - II. 从上到下打印二叉树 II 2022-07-08| 算法 剑指 Offer | 二叉树 - BFS - 层序遍历 题目描述从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:给定二叉树: $[3,9,20,null,null,15,7]$,
12345 3 / \9 20 / \ 15 7
返回其层次遍历结果:
12345[ [3], [9,20], [15, ...
Read more 剑指 Offer 32 - I. 从上到下打印二叉树 2022-07-08| 算法 剑指 Offer | 二叉树 - DFS 题目描述输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)
B是A的子结构, 即 A中有出现和B相同的结构和节点值。
例如:给定的树 A:
123453 / \ 4 5 / \ 1 2
给定的树 B:
123 4 / 1 ...
Read more 剑指 Offer 28. 对称的二叉树 2022-07-08| 算法 剑指 Offer | 递归 - 二叉树 - BFS 题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
12345 1 / \ 2 2 / \ / \ 3 4 4 3
但是下面这个 [1,2,2,null,3 ...
Read more 剑指 Offer 27. 二叉树的镜像 2022-07-08| 算法 剑指 Offer | 二叉树 - BFS - 前序遍历 题目描述请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
12345 4 / \ 2 7 / \ / \ 1 3 6 9
镜像输出:
12345 4 / \ 7 2 / \ / \ 9 ...
Read more 剑指 Offer 59 - II. 队列的最大值 2022-07-08| 算法 剑指 Offer | 队列 - 双端队列 题目描述请定义一个队列并实现函数 $max_value$ 得到队列里的最大值,要求函数$max_value$、$push_back$ 和 $pop_front$ 的 均摊 时间复杂度都是O(1)。
若队列为空,$pop_front$ 和 $max_value$ 需要返回 -1
示例 1:
123 ...
Read more 剑指 Offer 30. 包含min函数的栈 2022-07-08| 算法 剑指 Offer | 单调栈 题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
示例:
12345678MinStack minStack = new MinStack();minStack.push(-2);minS ...
Read more 剑指 Offer 59 - I. 滑动窗口的最大值 2022-07-08| 算法 剑指 Offer | 单调队列 题目描述给定一个数组 $nums$ 和滑动窗口的大小 $k$,请找出所有滑动窗口里的最大值。
示例:
123456789101112输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 ...
Read more 剑指 Offer 31. 栈的压入、弹出序列 2022-07-08| 算法 剑指 Offer | 模拟 - 栈 题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。
...
Read more 剑指 Offer 52. 两个链表的第一个公共节点 2022-07-08| 算法 剑指 Offer | 链表 题目描述输入两个链表,找出它们的第一个公共节点。
如下面的两个链表 :
在节点 c1 开始相交。
示例 1:
123输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出 ...
Read more