以Java语言为主,实现如下:
public class Node {
public int value;
public Node next;
public Node(int value) {
this.value = value;
}
public Node reverseList(Node head) {
Node prev = null; // 用于暂存前面的节点
Node next = null; // 用于暂存后面的节点
while (head != null) {
next = head.next; // 把后面的节点暂存起来
head.next = prev; // 当前节点的next就可以指向暂存的上一个节点,也即,反转节点指向
prev = head; // 把当前节点设置为上一个节点
head = next; // 设置下一个节点为当前节点
}
return prev;
}
}
该方法的时间复杂度是O(n),空间复杂度是O(1)。