代码随想录----链表

1 移除链表元素(看看)

思路我很简单 但是 小细节我需要完善 第一 我们的head指的是链表的第一个元素 我用了head.size()这不纯有病

第二点就是我知道要设置一个虚指针指向head 但是我用的是listnode * first = null肯定不可以的我们需要listnode * first = new listnode(0)这样才可以的在声明 ListNode * firstlist1 = nullptr; 之后,直接使用 firstlist1->next = head; 是错误的,因为 firstlist1 是一个空指针,解引用一个空指针会导致未定义行为。你需要先为 firstlist1 分配内存。

2 设计链表

问题1 为什么我们要重新设计一个我自己的链表呢?

可以不用但是这样子写容易理解

问题2 为什么我需要有这两个呢?

因为如何没有我们在MyLinkedList()进行创建并且初始化的话是错误的 因为毕竟他是一个函数

创建之后也是一个局部的 在外面不可以使用的!

问题3

运用多个 if的时候一定要小心  注意搭配if else if 使用 因为如果第三个不是else if 是if的时候 容易出错 因为addAtTail会对size++!!!!!!!!

3 反转链表

其实很简单就是我要注意 做的时候记得画图 看流程!! (再做一遍)

还有就是我们初始化的的时候必须是first = null 不能new 具体你好好看看就懂了

4 两两交换链表中的节点

会做 (注意画图捋一下思路就可以啦)

5 删除链表的倒数第N个元素

这个题目 也会做但是有一个很重要的细节就是我必须

这样子写 因为如果三个都是new listnode 的话我们相当于创建了三条链表,然后其他都不会有问题。就是删除元素是第一个元素会出问题

6 链表相交  

会 但是第一种方法 尝试一下 就是这个

7 环形链表II

这个题目我一开始想的是map<int,int>来做就是我的next一但出现跟map中的值相同我就直接返回

这是错误的 他因为这个值有可能出现多次

那我换方法 就是用地址 因为地址是唯一的 不管怎么都不会变 所以用地址就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值