代码随想录一刷 链表专题总结

目录

1.移除链表元素 (力扣203)

2.设计链表(力扣707)【建议复习】

3.反转链表 (力扣206)【建议复习】

4.两两交换链表中的节点(力扣24)【建议复习】

5.删除链表的倒数第N个节点(力扣19)

6.链表相交  (力扣160)(面试题02.07.)

7.环形链表II (力扣142)


1.移除链表元素 (力扣203)

考点:虚拟头节点

使用信号:对链表进行操作,且对头节点的处理和其他节点不同时用

方法:

①设置虚拟头节点

②指针遍历链表移除节点

2.设计链表(力扣707)

考点:

①链表的初始化

②链表的增删改查

方法:
初始化链表节点:
初始化单链表:
链表的增删改查:
①遍历链表查找操作节点
②删除/添加节点(头、尾节点相当于index的特例,详见随想录C#版代码)
相关知识:
①C++的
  while(index--) {
            cur = cur->next;
        }

可以用C#的替代 

while (index-- > 0)
{
    cur = cur->next;
}

C#中,类(class)或结构(struct)如果不是在其它类或结构中的话,它的访问类型要不就是internal, 要不就是public,不能是其他

换句话说,如果它在其它类或结构中的话,则可以为private 或protected等。

类或结构的默认访问类型是internal.

类中所有的成员,默认均为private。

MonoDevelop开发笔记,c#中类的默认访问修饰符,是private还是internal_c# 默认变量时 private-CSDN博客

 ③

在C#中,构造函数和其他方法的名称是不一样的。构造函数的名称必须与类名完全相同,且没有返回类型。

eg:

3.反转链表 (力扣206)

考点:反转链表

方法:三指针法(pre,cur,temp)

技巧:先在纸上画出链表,带上指针模拟下过程,然后再写代码

PS:与下题(力扣24)区分开,本题改变链表大方向,而下题不改变链表大方向!

4.两两交换链表中的节点(力扣24)

考点:两两交换链表中的节点

方法:三指针法(pre,cur,temp)

①设置指针

②改变链表的链接

③移动指针

技巧:先在纸上画出链表,带上指针模拟下过程,然后再写代码

按自己方法写的代码:

5.删除链表的倒数第N个节点(力扣19)

考点:删除链表的倒数第N个节点

方法:双指针法

①设置双指针

②移动快指针

③移动快、慢指针

④删除节点

技巧:技巧:先在纸上画出链表,带上指针模拟下过程,然后再写代码

按自己方法写的代码:

6.链表相交  (力扣160)(面试题02.07.)

考点:链表相交
方法:

①求链表A、B的长度

②让两个链表末尾位置对齐

③让指针遍历链表,若节点相同则返回

相关知识:

①C#中无swap,可用替代

7.环形链表II (力扣142)

考点:判断链表有无环,若有则返回入环的第一个节点

方法:(直接当结论套路记,不用推过程!)

①让快慢指针第一次相遇

②让快慢指针第二次相遇

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_69987707

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值