python 反转链表代码实现
时间: 2023-10-13 21:27:29 浏览: 103
当然,我可以回答这个问题。这是一个经典的链表问题。我们可以使用三个指针分别指向当前节点、前一个节点和后一个节点,然后不断将当前节点的指针指向前一个节点,直至遍历完整个链表。以下是Python反转链表的代码实现:
```
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
prev = None
curr = head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
```
这个算法的时间复杂度是O(n),其中n是链表的长度。
相关问题
python 反转链表
好的,以下是 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 向后移动一个节点,直到遍历完整个链表。
c++实现反转链表代码
以下是反转链表的代码:
```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
```
这段代码可以将一个链表反转。
阅读全文