目录
2.设计链表(力扣707)【建议复习】
3.反转链表 (力扣206)【建议复习】
4.两两交换链表中的节点(力扣24)【建议复习】
1.移除链表元素 (力扣203)
考点:虚拟头节点
使用信号:对链表进行操作,且对头节点的处理和其他节点不同时用
方法:
①设置虚拟头节点
②指针遍历链表移除节点
2.设计链表(力扣707)
考点:
①链表的初始化
②链表的增删改查
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)
考点:判断链表有无环,若有则返回入环的第一个节点
方法:(直接当结论套路记,不用推过程!)
①让快慢指针第一次相遇
②让快慢指针第二次相遇