![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
做题发现的点子
晴空对晚照
这个作者很懒,什么都没留下…
展开
-
02-线性结构2 一元多项式的乘法与加法运算
突然想起来好久没刷数据结构了,然后打开了PTA……做到一道好像做过的题,都写到树了链表还是没写上来……不写题还是不行……题目代码#include<bits/stdc++.h>using namespace std;void inputMultinomial(int n,int a[]) //输入多项式{ for(int i=0;i<n;i++) cin >> a[i];}bool printList(map<int,int,原创 2021-10-19 11:01:04 · 83 阅读 · 0 评论 -
[HBU-实验]1-10 链表去重 (20 分)
题目描述测试输入样例00100 599999 -7 8765423854 -15 0000087654 15 -100000 -15 9999900100 21 23854输出样例00100 21 2385423854 -15 9999999999 -7 -100000 -15 8765487654 15 -1代码一开始看这个形式,地址+值+下一个……模拟内存???就尝试写了一下然后……有个段错误查不出来了,问老师也没过去……附上代码请大神指教!#include原创 2021-10-11 15:55:48 · 149 阅读 · 0 评论 -
[HBU-实验]3-9 堆栈模拟队列 (20 分)
题目描述代码看示例理解题意吧……可以看到这里输入到第5个的时候就已经显示满了,所以容量是4即这个是最小值的2倍所以……这就省去了很多复杂情况的讨论……(一开始就是没看透这条然后搞了半天……)...原创 2021-10-08 21:20:11 · 85 阅读 · 0 评论 -
LC 两数相加
对比我那又臭又长的代码。。。最后还在最后一个进位过不去。。。高级的写法真的是高级高级又高级。。。题目链接class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *head=nullptr,*tail=nullptr; int carry=0; while(l1||l2) { int n1.原创 2021-09-09 21:51:29 · 93 阅读 · 0 评论 -
LC 链表反转-回文
经典模型原理反转一个链表:按原始顺序迭代结点,并将他们逐个移动到列表头部如:初始链表将黑色结点的下一个结点移动到列表头部(则23从指向6变为指向15)再将黑色结点的下一个结点移动到头部:直到黑色结点的下一个结点为空,此时得到反转后的链表实现/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode()原创 2021-09-08 21:35:26 · 109 阅读 · 0 评论 -
LC 移除链表元素
常规删除思路NT:中间结点好处理,都是一个公式,关键删除头结点可能要单独处理——>哨兵节点class Solution {public: ListNode* removeElements(ListNode* head, int val) { if(head==nullptr) return head; ListNode *ptr=new ListNode(); ptr->next=head; ListNode ...原创 2021-09-08 19:04:27 · 117 阅读 · 0 评论 -
LC删除链表的倒数第N个节点
在这里了解到一个概念:哨兵节点->参考简单来说,就是一个附加在原链表最前面用来简化边界条件的附加节点,它的值域不存储任何东西,只是为了操作方便而引入这里还是采用双指针形式,删除节点很熟悉,现在只要找到的就是要删除的结点的前一个结点a,再让a->next=a->next->next/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *nex..原创 2021-09-08 18:08:08 · 63 阅读 · 0 评论 -
LC 相交链表-双指针系列
题目描述暴力求解一开始啥也不会就遍历。。。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *getIntersectionNode(ListNode原创 2021-09-07 20:36:04 · 88 阅读 · 0 评论 -
LeetCode链表-环形链表II
题目描述问题点是上一篇环形链表I的进阶版,一开始也想改造上一篇那种用快慢指针,但是不知道如何判断起始点分析一般这类链表题目都用双指针方法解决,如:寻找距离尾部第k个结点,寻找环入口,寻找公共尾部入口等做法参考java版本:[https://blog.csdn.net/qq_41231926/article/details/86105434]类似于上一题,快指针f一次有2步,慢指针s一次有1步,总会相遇。(若有个结点的next出现null,说明不是环形链表,直接返回null即可)若相遇,是环原创 2021-09-07 19:11:36 · 84 阅读 · 0 评论 -
LeetCode链表-环形链表
给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。/** * Definition for singly-linked list. * struct Lis.原创 2021-09-06 21:46:57 · 114 阅读 · 0 评论