用python做反转链表,要求输入一个链表,反转链表后,输出链表的所有元素。
时间: 2024-05-11 22:16:45 浏览: 10
好的,这是一个编程问题,很高兴为你解答。下面是用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 = curr.next
curr.next = prev
prev = curr
curr = next
return prev
# 测试
head = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))
head = reverseList(head)
while head:
print(head.val)
head = head.next
# 输出:5 4 3 2 1
```
这段代码中,我们定义了一个`ListNode`类表示链表节点,其中包括一个值`val`和指向下一个节点的指针`next`;另外定义了一个函数`reverseList`,它接收一个链表头节点`head`,返回反转后的链表头节点。
具体实现方式是用两个指针`prev`和`curr`分别指向反转后的上一个节点和当前节点,然后遍历链表,依次修改节点的指针指向即可。
最后我们对反转后的链表进行遍历输出,验证反转结果是否正确。