给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 第一个想到的是回溯法,回溯到 ...
分类:
其他好文 时间:
2020-06-26 10:22:26
阅读次数:
50
单链表 两种形式 结构体形式 : 申请新节点太慢 struct List { int data; List *next; } 数组模拟 代码模板 const int N = 1e6 + 10; int e[N], ne[N], head, idx; // 初始化:head存的是头结点下标,用idx分 ...
分类:
其他好文 时间:
2020-06-25 15:24:32
阅读次数:
68
19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实 ...
分类:
其他好文 时间:
2020-06-25 12:01:21
阅读次数:
53
问题描述 : 输入若干(不超过100个)非负整数,创建一个不带头结点的单向链表。再输入一个位置index以及一个数据data,程序中首先创建一个新结点s,s的数据成员为data,然后调用函数insertNode将s插入到链表的指定位置index处,最后输出结果链表。请编写insertNode函数,完 ...
分类:
其他好文 时间:
2020-06-24 23:53:44
阅读次数:
121
问题描述 : 输入A、B、C、D四个集合(集合中无重复元素,且元素值都大于0),分别存储在不带头结点的链表中。 本程序先将四个集合执行以下操作: 对A、B、C、D分别进行升序排序;(该功能已实现,见函数sort)。 做A=A+B操作:先执行两个有序链表A和B的合并,并仍然保持有序,结果存储在A中,然 ...
分类:
其他好文 时间:
2020-06-24 23:35:10
阅读次数:
90
问题描述 : 输入若干(不超过100个)非负整数,创建一个不带头结点的单向链表。在输入一个位置index,从链表中删除第index个结点,输出结果链表。 请编写deleteNode函数,完成删除操作。deleteNode函数的原型如下: struct student *deleteNode(stru ...
分类:
其他好文 时间:
2020-06-24 23:31:41
阅读次数:
65
题目: 输入一个链表的头结点,按链表从尾到头的顺序返回一个ArrayList。 思路: 假设源链表节点为A->B->C->D->E,那么: 将A插到0位置:A->B->C->D->E; 将B插到0位置:B->A->C->D->E; 将C插到0位置:C->B->A->D->E; 将D插到0位置:D-> ...
分类:
编程语言 时间:
2020-06-24 16:16:01
阅读次数:
52
链表介绍: 链表是以节点的方式来储存,是链式存储; 每个节点包含 data 域,next 域:指向下一个结点; 链表的各个节点不一定是连续存储的; 链表分为带头结点链表 和 没有头结点的链表,根据实际需求来确定; 单链表的应用实例: 使用带 head 头的单向链表实现 水浒英雄排行榜管理完成对英雄人 ...
分类:
其他好文 时间:
2020-06-24 10:33:18
阅读次数:
43
解法 思路: 大致过程可以分解为 1、找到待翻转的k个节点(注意:若剩余数量小于 k 的话,则不需要反转,因此直接返回待翻转部分的头结点即可)。 2、对其进行翻转。并返回翻转后的头结点(注意:翻转为左闭又开区间,所以本轮操作的尾结点其实就是下一轮操作的头结点)。 3、对下一轮 k 个节点也进行翻转操 ...
分类:
其他好文 时间:
2020-06-23 22:59:04
阅读次数:
103
题目: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 思路: 最初的想法 ...
分类:
其他好文 时间:
2020-06-23 11:41:19
阅读次数:
53