设计一个算法,将带头节点的单链表逆置
时间: 2024-03-24 14:39:44 浏览: 81
借助栈将一个带头结点的单链表倒置
4星 · 用户满意度95%
可以使用三个指针依次遍历链表,将每个节点的 next 指针指向它的前驱节点,即可实现链表的逆置。
具体的实现方式如下:
```python
def reverse_linked_list(head):
if head is None or head.next is None:
return head
prev = None
curr = head.next
while curr is not None:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
head.next = prev
return head
```
其中,head 表示链表的头节点,prev 表示当前节点的前驱节点,curr 表示当前节点,next_node 表示当前节点的后继节点。
该算法的时间复杂度为 O(n),其中 n 表示链表的长度。
阅读全文