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