输入若干个不超过100的整数,建立单链表,然后将链表中所有结点的链接方向逆置,要求仍利用原表的存储空间。输出逆置后的单链表。,用python完成
时间: 2024-02-18 19:04:26 浏览: 92
好的,下面是一个Python程序,可以实现输入若干个不超过100的整数,建立单链表,并将链表中所有结点的链接方向逆置:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 输入若干个不超过100的整数,返回单链表的头结点
def createLinkedList():
nums = list(map(int, input().split()))
head = ListNode(0)
p = head
for num in nums:
p.next = ListNode(num)
p = p.next
return head.next
# 将链表中所有结点的链接方向逆置,返回逆置后的单链表的头结点
def reverseLinkedList(head):
p = head
q = None
while p:
r = p.next
p.next = q
q = p
p = r
return q
# 输出逆置后的单链表
def printLinkedList(head):
p = head
while p:
print(p.val, end=' ')
p = p.next
# 主程序
if __name__ == '__main__':
head = createLinkedList()
head = reverseLinkedList(head)
printLinkedList(head)
```
这个程序首先定义了一个链表结点类 `ListNode`,然后定义了三个函数:
- `createLinkedList()`,用于输入若干个不超过100的整数,建立单链表,返回单链表的头结点。
- `reverseLinkedList(head)`,用于将链表中所有结点的链接方向逆置,返回逆置后的单链表的头结点。
- `printLinkedList(head)`,用于输出逆置后的单链表。
最后,在主程序中调用这三个函数,实现输入、逆置、输出单链表的功能。
阅读全文