python堆栈反转链表
时间: 2023-08-25 13:10:32 浏览: 58
要在Python中反转链表,可以使用堆栈的方式来实现。下面是一个示例代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverse_list(head):
stack = []
while head:
stack.append(head)
head = head.next
new_head = ListNode()
curr = new_head
while stack:
node = stack.pop()
curr.next = ListNode(node.val)
curr = curr.next
return new_head.next
```
你可以使用该代码来反转一个链表。首先,将链表节点依次压入堆栈中。然后,创建一个新的链表头部节点,并按照堆栈的顺序将节点连接起来。最后返回反转后的链表头部。
注意:这里创建了一个新的链表,并复制了原始链表节点的值。如果需要修改原始链表,请根据实际情况进行相应的修改。
相关问题
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 向后移动一个节点,直到遍历完整个链表。
python反转链表
要反转一个列表,可以使用列表的切片操作。你可以通过指定步长为-1来实现反向切片。下面是一个示例:
```python
my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1]
print(reversed_list)
```
这将输出 `[5, 4, 3, 2, 1]`,即反转后的列表。