输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。
时间: 2023-04-21 19:06:46 浏览: 156
带头结点的单链表,反转并输出
可以按照以下步骤来实现:
1. 定义一个带头结点的单链表,并初始化头结点为空。
2. 通过循环输入多个整数,直到输入-1为止。每输入一个整数,就创建一个新的结点,并将该整数存储到结点的数据域中。
3. 将新创建的结点插入到单链表的末尾。
4. 对单链表进行逆置。可以使用三个指针分别指向当前结点、前驱结点和后继结点,依次将当前结点的next指针指向前驱结点,然后将三个指针向后移动一个位置,直到当前结点为空。
5. 遍历逆置后的单链表,并输出每个结点的数据域。
下面是具体的代码实现:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
head = Node() # 定义头结点
tail = head # 定义尾结点
while True:
num = int(input("请输入一个整数:"))
if num == -1:
break
new_node = Node(num) # 创建新结点
tail.next = new_node # 将新结点插入到单链表末尾
tail = new_node # 更新尾结点
# 对单链表进行逆置
prev = None
curr = head.next
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
head.next = prev
# 遍历逆置后的单链表,并输出每个结点的数据域
curr = head.next
while curr:
print(curr.data, end=" ")
curr = curr.next
```
阅读全文