链表
SYaoJun
这个作者很懒,什么都没留下…
展开
-
链表中倒数第k个节点
题目难度:简单注意:链表可能为空,k有可能不合理或者大于链表的总长度。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(Lis...原创 2020-04-23 11:38:35 · 209 阅读 · 0 评论 -
翻转链表
公司:哔哩哔哩类型:链表模拟题目#include <bits/stdc++.h>using namespace std;const int N = 1e5+5;int arr[N];int main(){ int n, x, i = 0; char c; while(scanf("%d", &x)){ c = getchar(); arr[i++] ...原创 2020-03-26 21:31:21 · 93 阅读 · 0 评论 -
7-2 Block Reversing (25分)
Given a singly linked list L. Let us consider every K nodes as a block (if there are less than K nodes at the end of the list, the rest of the nodes are still considered as a block). Your job is to re...原创 2019-12-08 08:18:34 · 256 阅读 · 0 评论 -
21. 合并两个有序链表
链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*...原创 2019-11-26 15:51:15 · 78 阅读 · 0 评论 -
24. Swap Nodes in Pairs
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* sw...原创 2019-08-20 17:25:43 · 66 阅读 · 0 评论 -
206. 反转链表
注意尾部一定要赋值为空,否则无法通过。思路把链表中的next指针反向/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */clas...原创 2019-08-20 17:38:51 · 96 阅读 · 0 评论 -
92. Reverse Linked List II
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* re...原创 2019-08-20 20:30:19 · 76 阅读 · 0 评论 -
160. Intersection of Two Linked Lists
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *ge...原创 2019-08-20 20:41:01 · 79 阅读 · 0 评论 -
142. Linked List Cycle II
链表的经典题求一个单链表环的起点,用快慢指针,一个指针走两步,一个指针走一步。当两个指针相遇后,把快指针放到起始点,然后每个走一步,当再次相遇的时候就是环的入口位置。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNo...原创 2019-08-20 20:57:15 · 62 阅读 · 0 评论 -
1075 链表元素分类 (25 分)
这是看了柳神的代码之后改的,我自己写的代码第五个测试点死活通不过。之前学习链表想到拼接链表的办法,虽然有点麻烦,但是我决定尝试一下,我知道很可能是某个地方拼接失误了,不然肯定能通过的。我把代码放在后面,如果有看出我错误的同学,麻烦指正一下。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;struc...原创 2019-01-28 22:00:40 · 398 阅读 · 1 评论 -
1025 反转链表 (25 分)
景甜链表原创 2019-09-01 09:11:26 · 177 阅读 · 1 评论 -
7-19 求链式线性表的倒数第K项 (20 分)
这个是想仿leetcode上的一个链表题原本意思是要用快慢指针的,但是由于题目给的是数组,就直接输出就完事了。然而就是这样一个水题,还疯狂卡我的时间的,说我超时。所以,以后还是多写scanf吧#include <iostream>#include <vector>using namespace std;int main(){ int k, x; scan...原创 2019-09-02 21:08:12 · 539 阅读 · 0 评论 -
链表分割
题目链接/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Partition {public: ListNode* partition(ListNode* p, int x) { //用两个...原创 2019-09-13 09:17:38 · 104 阅读 · 0 评论 -
7-2 Merging Linked Lists (25 分)
考查的知识点:链表的静态存储PAT的经典类型题#include <iostream>#include <cstdio>#include <stack>#include <unordered_map> #include <algorithm> using namespace std;const int N =1e5+3;...原创 2019-09-27 09:22:47 · 995 阅读 · 0 评论 -
7-51 两个有序链表序列的合并 (20 分)
归并两个有序数组的模板#include<bits/stdc++.h>using namespace std;vector<int> A,B,C;void merge(){ int i=0,j=0,k=0; C.clear(); while(i<A.size() || j<B.size()){ if(i==A.size()&&j...原创 2019-05-16 12:50:53 · 1671 阅读 · 0 评论 -
61. Rotate List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* ro...原创 2019-08-20 16:59:07 · 66 阅读 · 0 评论 -
2. 两数相加
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* ad...原创 2019-08-20 09:23:05 · 71 阅读 · 0 评论 -
PATA1052 Linked List Sorting (25 分)
思路:使用静态链表注意:存在给出的地址不在链表上,此外,存在链表没有任何节点。所以这个故事告诉我们,多想一下出题人要求我们输出内容的必要性,一般情况,出题人不会脑残让我们读入什么,就输出什么。#include<cstdio>#include<algorithm>using namespace std;const int maxn=100006;struct no...原创 2019-01-19 23:10:48 · 219 阅读 · 0 评论 -
单链表反转
#include<cstdio>#include<cmath>struct node{ int value; struct node* next;};node* reverse(node* list){ node* head=NULL,*cur=list,*temp; while(cur!=NULL){ temp = cur->next; cu...原创 2019-01-20 12:12:40 · 148 阅读 · 0 评论 -
两个链表的交汇点
详情请参照B站:正月点灯笼视频讲解。#include&lt;cstdio&gt;#include&lt;cmath&gt;struct node{ int value; struct node* next;};int get_list_length(node* list){ node* p = list; int cnt=0; while(p != NULL){ p = p...原创 2019-01-20 12:15:22 · 327 阅读 · 0 评论 -
判断链表是否有环
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycl...原创 2019-01-20 14:57:03 · 140 阅读 · 0 评论 -
分隔链表
Leetcode86给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5思路:类似于快排,但是链表可以新建左右两个链表,然后拼...原创 2019-01-20 16:18:56 · 130 阅读 · 0 评论 -
L2-002 链表去重 (25 分)
静态链表PAT的套路题,多刷几道知道了。注意:是以地址作为数组的下标,所以读入的时候要细心,我开始就想当然的挨个存了,最后调了很久才发现。#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>using namespace std;struct node{...原创 2019-01-23 16:52:37 · 774 阅读 · 0 评论 -
L2-022 重排链表 (25 分)
题目链接静态链表的典型题主要是考虑链表中合理的数据,同时按照题目指定的规则输出。#include<bits/stdc++.h>#include<string>#include<set> #include<map>using namespace std;const int maxn = 100005;struct node{ int...原创 2019-07-19 17:05:29 · 696 阅读 · 4 评论 -
1074 Reversing Linked List (25 分)
Reversing Linked List版本1#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;struct node{ int add,value,index,next;}E[maxn];bool cmp(node a, node b){ return a.index < b.i...原创 2019-07-22 10:34:08 · 139 阅读 · 0 评论 -
1097 Deduplication on a Linked List (25 分)
Deduplication on a Linked List#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;struct node{ int add,value,index,next,tag;}E[maxn];bool cmp(node a, node b){ if(a.tag!=b.tag...原创 2019-07-22 10:38:24 · 111 阅读 · 0 评论 -
1133 Splitting A Linked List (25 分)
Splitting A Linked List版本1#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;struct node{ int add,value,index,next,tag;}E[maxn];bool cmp(node a, node b){ if(a.tag != b.tag)...原创 2019-07-22 10:57:00 · 116 阅读 · 0 评论 -
Sharing【浙江大学】
题目链接解题思路PAT的经典题,建议多做几遍,反正我做这种题,做了不下五遍了。#include<bits/stdc++.h>using namespace std;struct node{ int pre1,pre2,next,add; char c;}E[100005];int main(){ int p1,p2,n,add; while(cin>>...原创 2019-08-02 10:40:09 · 207 阅读 · 0 评论 -
19. Remove Nth Node From End of List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* re...原创 2019-08-19 15:00:20 · 112 阅读 · 0 评论 -
237. Delete Node in a Linked List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: void deleteN...原创 2019-08-19 15:06:24 · 115 阅读 · 0 评论 -
83. Remove Duplicates from Sorted List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* de...原创 2019-08-19 15:18:17 · 75 阅读 · 0 评论 -
1032 Sharing (25 分)
思路:使用静态链表,相当于哈希操作。注意:地址需要输出5位数#include&lt;cstdio&gt;struct node{ char c; int next; int index;}Node[100006];int main(){ int x,y,n,cur,next; char c; scanf("%d%d%d",&amp;x,&amp;y,&amp;n);原创 2019-01-19 21:05:35 · 243 阅读 · 0 评论