链表
1. 反转链表
1.1 递归
- 时间复杂度 o(N)
- 空间复杂度 o(N)
- 装逼利器:happy:
1 | class Solution { |
1.2 迭代
2. k个一组反转链表
链表是一种兼具递归和迭代性质的数据结构
反转链表有几种
- 整个链表反转
- 部分链表 [a ,b ) 之间反转
1 | class Solution { |
3. 回文链表
1 | 示例一: |
借助二叉树后序遍历的思路,不需要显式反转原始链表也可以倒序遍历链表
1 | // 二叉树遍历方法 |
同理,链表是二叉树的爹,所以一定也有遍历方法:
1 | //链表遍历方法 |
那么可以知道这道题的解题思路,就是用链表的后序遍历,将值入栈,然后再拿出来与 left
进行对比
1 | class Solution { |
但是这种方法的时间复杂度 o(N), 空间复杂度 o(N),不高效,所以我们来进行一些优化
怎么优化?
像字符串一样,使用快慢指针,并且不使用递归,不使用栈空间,就可以做到空间复杂度 o(N) 啦。
具体如下:
1 | class Solution { |
来捧场吧!
- 本文链接:http://example.com/2021/05/10/%E9%93%BE%E8%A1%A8/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
GitHub IssuesGitHub Discussions