-
给定一个单链表 L __ 的头节点 head ,单链表 L 表示为:
L0 → L1 → … → Ln - 1 → Ln
请将其重新排列后变为:
L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …
不能只是单纯的改变节...
-
给你二叉树的根节点 root ,返回它节点值的 前序 __ 遍历。
示例 1:
**输入:** root = [1,null,2,3]
**输出:** [1,2,3]
示例 2:
**输入:** root = []
**输出:** []
示例 ...
-
给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。
示例 1:
**输入:** root = [1,null,2,3]
**输出:** [3,2,1]
示例 2:
**输入:** root = []
**输出:** []
示例 3...
-
请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。
实现 LRUCache 类:
LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存
int get(int key)...
-
给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。
插入排序 算法的步骤:
插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。
每次迭代中,插入排序只从输入数据中移除一个待排序...
-
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。
示例 1:
**输入:** head = [4,2,1,3]
**输出:** [1,2,3,4]
示例 2:
**输入:** head = [-1,5,3,4,0]
*...
-
给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。
示例 1:
**输入:** points = [[1,1],[2,2],[3,3]]
**输出:** 3
...
-
给你一个字符串 s ,请你反转字符串中 单词 的顺序。
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。
注意: 输入字符串s中可能会存在前导空格、尾...
-
给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。
测试用例的答案是一个 32-位 整数。
子数组 是数组的连续子序列。
示例 1:
**输入:** nums = [2,...
-
已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:
若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]
若旋转 7 次,...