不必定义类,构造升序的单链表并实现逆置
时间: 2024-09-25 15:11:18 浏览: 52
在Python中,我们可以使用列表推导式和内置函数来构建升序的单链表,并利用Python的切片操作来实现逆置。这里是一个简单的例子:
```python
# 定义节点类
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 构建升序单链表
def build_sorted_list(arr):
head = None
tail = None
for num in sorted(arr):
if not head:
head = ListNode(num)
tail = head
else:
tail.next = ListNode(num)
tail = tail.next
return head
# 逆置单链表
def reverse_list(head):
prev = None
current = head
while current:
next_node = current.next
current.next = prev
prev = current
current = next_node
return prev
# 示例
arr = [5, 2, 9, 1, 7]
sorted_list = build_sorted_list(arr)
reversed_list = reverse_list(sorted_list)
# 输出原顺序和逆序后的第一个元素验证结果
print("Original list (ascending):", [(node.val, "None" if node.next is None else node.next.val) for node in sorted_list])
print("Reversed list:", [(node.val, "None" if node.next is None else node.next.val) for node in reversed_list])
```
在这个示例中,`build_sorted_list`函数接收一个列表,创建一个排序好的单链表。`reverse_list`函数则通过迭代将链表反转。
阅读全文