反转链表
反转链表
给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
- 链表中节点的数目范围是
[0, 5000]
-5000 <= Node.val <= 5000
1.利用外部空间
主要思路:利用外部空间+STL算法
- 先申请一个动态扩容的数组或者容器,然后不断遍历链表,将链表中的元素添加到这个容器中。
- 再利用容器自身的 API,反转整个容器,这样就达到反转的效果了。
- 最后同时遍历容器和链表,将链表中的值改为容器中的值。
1 | class Solution { |
2.双指针迭代
3.优化的双指针
4.递归
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.