链表的认识
封装链表以及链表功能的实现
封装双向链表以及双向链表功能的实现
链表练习
链表的访问
LeetCode#141 环形链表(方法一:哈希表 方法二:快慢指针)
LeetCode#142 环形链表II(方法:快慢指针相遇点与第三指针)
LeetCode#202 快乐数(方法:环形链表思路)
链表的反转
LeetCode#206 反转链表(方法一:迭代法(三个参数:prev,cur,next) 方法二:递归)
LeetCode#92 反转链表II(方法:拆分成反转链表的前N个节点)
LeetCode#25 K个一组反转链表(方法:拆分成反转链表的前N个节点和判断链表是否满足k个)
LeetCode#61 旋转链表(方法:连接链表的首尾,移动到旋转后的头节点的前一个节点,断开链表)
LeetCode#24 两两交换链表中的节点(方法一:相当于K个一组反转链表的特殊情况 方法二:迭代反转)
链表的删除
LeetCode#19 删除链表的倒数第N个节点(方法:找到倒数第N-1个节点,指向倒数第N个节点的下一个节点)
LeetCode#83 删除排序链表中的重复节点(方法:设置一个指针用于两两判断相邻节点值是否相等)
LeetCode#82 删除排序链表中的重复节点II(方法:设置两个指针用于判断)