设计一个算法,利用栈(链栈)来实现带头结点的单链表h的逆序。
时间: 2024-05-12 11:17:55 浏览: 79
算法实现:Java单链表逆序
可以使用一个栈来存储h的所有节点,然后依次出栈并插入到一个新的链表中,这样就可以实现h的逆序。具体实现过程可以参考以下代码:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
def reverse_linked_list_with_stack(head):
if not head or not head.next:
return head
stack = []
cur = head.next
while cur:
stack.append(cur)
cur = cur.next
new_head = Node(None)
cur = new_head
while stack:
node = stack.pop()
cur.next = node
cur = cur.next
cur.next = None
return new_head
```
当然,这只是其中一种实现方式,还有其它的实现方式,读者可以根据自己的喜好选择不同的实现方式。
阅读全文