定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
示例:
1 | MinStack minStack = new MinStack(); |
提示:
各函数的调用总次数不超过 20000 次
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
示例:
1 | MinStack minStack = new MinStack(); |
提示:
各函数的调用总次数不超过 20000 次
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
例如:
给定二叉树: [3,9,20,null,null,15,7],
1 | 3 |
返回其层次遍历结果:
1 | [ |
提示:
节点总数 <= 1000
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
给定二叉树: [3,9,20,null,null,15,7],
1 | 3 |
返回其层次遍历结果:
1 | [ |
提示:
节点总数 <= 1000
请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。
示例 1:
1 | 输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]] |
示例 2:
1 | 输入:head = [[1,1],[2,1]] |
示例 3:
1 | 输入:head = [[3,null],[3,0],[3,null]] |
示例 4:
1 | 输入:head = [] |
提示:
1 | -10000 <= Node.val <= 10000 |
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。
示例:
给定如下二叉树,以及目标和 sum = 22,
1 | 5 |
返回:
1 | [ |
提示:
节点总数 <= 10000