链表简单题全部做完做个小总结:
141、linked-list-cycle
两个指针,一块一慢,若快指针能遇到慢指针则返回true
160、tersection-of-two-linked-lists
两个不等的线段并起来最后的长度相同,用两个指针同时走就行
或者:
最朴素的想法,求长度,求差,再两个一起走,直到相等或者返回空
203.remove-linked-list-elements.cpp
一前一后两个指针,考虑头结点值即是该值时,需要更新头结点
206.reverse-linked-list.cpp
使用递归和迭代两种方法实现链表反转
21.merge-two-sorted-lists.cpp
递归做法
234.palindrome-linked-list.0.cpp
用vector存储链表的值或者1、找到中间节点;
2、翻转链表
237.delete-node-in-a-linked-list.cpp
删除节点,指针赋值
61.rotate-list.cpp
使用循环链表
707.design-linked-list.cpp
C++基本功,构造函数等,构建结构体Node,head,tail,size,等变量
83.remove-duplicates-from-sorted-list.cpp
找到相同的节点,跳过即可
876.middle-of-the-linked-list.cpp
先后两个指针
全部解析:github链接