- 博客(4)
- 收藏
- 关注
原创 61. 旋转链表
具体题目描述可以查看leetcode:61. 旋转链表题目描述:给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。思路:先遍历一次链表,把尾指针指向开头形成环,再到相应位置剪开链表即可。需要注意的是在什么位置剪开,假如移动k步,k比链表长度小的话,需要从开头向下找的是len-k步,假如k比len大,则每多len个长度相当于一步未移动,因此把多的len步排除,最后走的是len - (k-(k/len)*len)步。/** * Definition for si...
2020-12-25 03:07:44 135
原创 138. 复制带随机指针的链表
具体描述可以查看leetcode给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。我们用一个由n个节点组成的链表来表示输入/输出中的链表。每个节点用一个[val, random_index]表示:val:一个表示Node.val的整数。random_index:随机指针指向的节点索引(范围从0到n-1);如果不指向任何节点,则为null。思路:由于是深拷贝,不能利用原节点,需要重新申请...
2020-12-25 02:03:23 125
原创 430. 扁平化多级双向链表
题目:具体图解可在leetcode查看多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。思路:深度遍历多级链表并用一个数组记录遍历节点,同时用一个辅助数组记录当前节点的遍历状态,为0说明反向遍历找下一个节点时忽略,为1则说明下一次遍历从该处开始。这样每次深度遍历到空指针时就回溯数.
2020-12-25 01:19:45 160
原创 用 Rand7() 实现 Rand10()
用 Rand7() 实现 Rand10(已有方法rand7可生成 1 到 7 范围内的均匀随机整数,试写一个方法rand10生成 1 到 10 范围内的均匀随机整数。不要使用系统的Math.random()方法。示例 1:输入: 1输出: [7]示例 2:输入: 2输出: [8,4]示例 3:输入: 3输出: [8,1,10]提示:rand7已定义。传入参数:n表示rand10的调用次数。进阶:rand7()调用次数的...
2020-12-13 21:58:56 630
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人