方法一:时间复杂度O(n),空间复杂度O(1)
@Data
public class SingeListNode {
private Node head;
public static void reverseList(Node head){
Node prev =null;
Node next =null;
while (head!=null){
next = head.getNext();//记录下一个元素
head.setNext(prev);//当前元素的下一个元素指向它的前一个元素
prev = head;//保留当前元素,作为下一次元素的前一个元素
head = next;//进行下一个元素反转
}
}
@Data
class Node<T>{
private T data;
private Node next;
}
![](https://i-blog.csdnimg.cn/blog_migrate/1f541dd78a7f4c34b0d376fe49adfa0b.png)
方法二:利用栈,将元素先压入栈,再出栈即可得到反转链表。时间复杂度 时间复杂度O(n),空间复杂度O(n)