python 反转链表
时间: 2023-11-12 21:59:03 浏览: 95
好的,以下是 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
curr.next = prev
prev = curr
curr = next_node
return prev
```
这里使用了双指针的方法,prev 指向当前节点的前一个节点,curr 指向当前节点,next_node 指向当前节点的下一个节点。在遍历链表时,将 curr 的 next 指向 prev,然后将 prev 和 curr 向后移动一个节点,直到遍历完整个链表。
相关问题
python反转链表
要反转一个列表,可以使用列表的切片操作。你可以通过指定步长为-1来实现反向切片。下面是一个示例:
```python
my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1]
print(reversed_list)
```
这将输出 `[5, 4, 3, 2, 1]`,即反转后的列表。
用python反转链表
在Python中,反转链表是一个常见的链表操作,可以使用迭代或递归的方式来实现。这里提供一种常见的迭代方法:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
prev = None # 初始化前驱节点为None
curr = head # 初始化当前节点为头节点
while curr is not None: # 当当前节点不为空时
temp = curr.next # 临时保存当前节点的下一个节点
curr.next = prev # 将当前节点的next指向前一个节点
prev = curr # 移动前驱节点到当前位置
curr = temp # 移动当前节点到下一个位置
return prev # 返回新的头节点,即原链表的尾节点变成了新链表的头节点
# 示例:
# 创建链表 1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
head.next.next.next = ListNode(4)
head.next.next.next.next = ListNode(5)
reversed_head = reverseList(head)
```
阅读全文