利用单链表表示一个整数序列,通过一趟遍历,将单链表中所有结点的链接方向逆转
时间: 2023-06-12 15:05:18 浏览: 84
可以通过遍历单链表,依次将每个节点的 next 指针指向其前一个节点,从而实现单链表的逆转。需要注意在遍历过程中,需要记录当前节点、前一个节点和下一个节点三个节点的指针,以便进行指针的修改。
下面是一个示例 Python 代码实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head: ListNode) -> ListNode:
# 初始时前一个节点为空
prev = None
# 当前节点为头结点
curr = head
while curr:
# 先记录下一个节点
next_node = curr.next
# 修改当前节点的 next 指针指向前一个节点
curr.next = prev
# 更新前一个节点为当前节点
prev = curr
# 更新当前节点为下一个节点
curr = next_node
# 返回逆转后的头结点
return prev
```
接下来,我们可以创建一个单链表,并调用 `reverseList` 函数,将单链表逆转:
```python
# 创建一个单链表:1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))
# 将单链表逆转
new_head = reverseList(head)
# 输出逆转后的单链表
while new_head:
print(new_head.val)
new_head = new_head.next
```
输出结果为:
```
5
4
3
2
1
```