链表反转
目录
链表反转
方法一:迭代
在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。
|
|
复杂度分析
时间复杂度:O(n),其中n是链表的长度。需要遍历链表一次。
空间复杂度:O(1)。
方法二:递归法
|
|
复杂度分析
时间复杂度:O(n),其中n 是链表的长度。需要对链表的每个节点进行反转操作。
空间复杂度:O(n),其中n 是链表的长度。空间复杂度主要取决于递归调用的栈空间,最多为n层。