链表
文章平均质量分 92
wenlyq
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
51 输出单向链表中倒数第k个结点
题目描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。 链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 详细描述: 接口说明 原型: ListNode* FindKthToTail(ListNode* pListHead, unsignedint k); 输入参数: Lis...原创 2019-01-16 21:18:32 · 296 阅读 · 0 评论 -
删除链表中重复的结点
题型1 删除重复的节点,重复的节点不保留 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 需要考虑第一个节点重复的情况,所以创建一个头节点,保证头节点不会重复,头节点指向head, 两个指针,pre 和current...原创 2019-03-29 20:31:35 · 182 阅读 · 0 评论 -
链表中环的入口结点
题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 1:判断链表是否带环: 判断有环的方法就是用两个快慢指针p1、p2,p1的速度为P2的两倍,两个指针同时从链表的头结点开始出发,当两个结点再一次相遇且相遇点不是最后一个结点时,说明此链表有环。 2:、若有环,找环的入口: ① 当P1和P2在PM相遇时: P1走过的路程(结点数):S快=L+X+n*R; P2走过...原创 2019-03-29 19:14:33 · 149 阅读 · 0 评论 -
孩子们的游戏(圆圈中最后剩下的数)
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一...原创 2019-03-25 17:47:57 · 118 阅读 · 0 评论 -
python线性表
顺序表 顺序表,将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。 数据元素本身连续存储,每个元素所占的存储单元大小固定相同,元素的下标是其逻辑地址,而元素存储的物理地址(实际内存地址)可以通过存储区的起始地址Loc (e0)加上逻辑地址(第i个元素)与存储单元大小(c)的乘积计算而得,即:Loc(ei) = Loc(e0) + c*i,时间复杂度为O(1)。 如果...原创 2019-03-25 14:22:20 · 4136 阅读 · 0 评论 -
两个链表的第一个公共结点
题目描述 输入两个链表,找出它们的第一个公共结点。 思路:利用列表 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def FindFirstCommonNode(se...原创 2019-03-21 15:54:10 · 107 阅读 · 0 评论 -
二叉搜索树与双向链表
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路:递归 1.将左子树构造成双链表,并返回链表头节点。 2.定位至左子树双链表最后一个节点。 3.如果左子树链表不为空的话,将当前pRootOfTree追加到左子树链表。 4.将右子树构造成双链表,并返回链表头节点。 5.如果右子树链表不为空的话,将该链表追加到pRoot...原创 2019-03-05 22:02:20 · 159 阅读 · 0 评论 -
复杂链表的复制
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路:递归,创建label指向的newnode;newnode.next=clone()递归;newnode.random=head.random # -*- coding:...原创 2019-03-05 21:13:26 · 123 阅读 · 0 评论 -
合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 递归:注意链表为空的情况; # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution...原创 2019-02-28 21:58:02 · 130 阅读 · 0 评论 -
反转链表
题目描述 输入一个链表,反转链表后,输出新链表的表头。 思路一:非递归 *head为空时,直接返回null; *head为当前结点,pre为当前结点的前一结点,next为当前结点的下一结点。 *pre结点可以反转指向,但反转之后如果不用next结点保存next结点的话,链表就断开了 *循环: 先用next保存下一个结点的信息,保证单链表不会因为失去head结点的原next结点而就此断裂; 保存完n...原创 2019-02-28 21:40:10 · 107 阅读 · 0 评论 -
链表中倒数第k个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路一: *两个指针fast和slow,让两个指针都指向头结点; *让fast走(k-1)步(1~k-1),到达第k个节点; *两个指针同时往后移动,当fast到达末尾的时候,slow所在位置就是倒数第k个结点 注意 head为空,k<=0;以及节点.next 为空的判断 /* public class ListNode { in...原创 2019-02-28 21:15:33 · 122 阅读 · 0 评论 -
从尾到头打印链表
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 思路一:创建一个list,将链表值加入;然后反转输出 python # -*- coding:utf-8 -*- class ListNode: def __init__(self, x): self.val = x self.next = None class Solution...原创 2019-02-24 21:21:03 · 108 阅读 · 0 评论 -
链表
链表中环的入口地址 思路1:慢指针p1,快指针p2,当p2!=null or p2.next!=null, p1每次走一步,p2每次走两步,当p1=p2,到达相遇点 然后p2从链表头开始,p1继续从相遇点走,以相同速度走,下次相遇时就是链表的入口 思路2:创建set,如果节点不为空,则循环,节点不在set中,则加入;在set中,说明已经循环了,为入口点,返回该节点 # -*- coding:utf...原创 2019-07-31 13:29:02 · 302 阅读 · 0 评论
分享