反转链表自测 python
时间: 2023-10-29 17:58:01 浏览: 106
要自测Python中的反转链表,你可以按照以下步骤进行:
1. 首先,定义一个链表的节点类,包含一个值和一个指向下一个节点的指针。
2. 构建一个测试用的链表,可以手动创建一个链表并添加节点,也可以使用已有的测试用例。
3. 创建一个函数来反转链表。在这个函数中,你可以使用一个新的链表来存储反转后的结果。你需要遍历原始链表,将每个节点从头部插入到新链表中,这样就可以实现链表的反转。
4. 调用反转链表的函数,传入测试用的链表。
5. 打印或者遍历新链表,以验证链表是否被成功反转。
以下是一个示例代码,展示了如何在Python中自测反转链表:
```python
# 定义链表节点类
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 构建测试用链表
def buildLinkedList(nums):
dummy = ListNode()
curr = dummy
for num in nums:
curr.next = ListNode(num)
curr = curr.next
return dummy.next
# 反转链表函数
def reverseLinkedList(head):
if not head or not head.next:
return head
prev = None
curr = head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
# 测试用例
nums = [1, 2, 3, 4, 5]
head = buildLinkedList(nums)
# 反转链表
reversed_head = reverseLinkedList(head)
# 打印反转后的链表
while reversed_head:
print(reversed_head.val)
reversed_head = reversed_head.next
```
这段代码中,我们首先定义了一个链表节点类`ListNode`,然后使用`buildLinkedList`函数构建了一个测试用的链表。接下来,使用`reverseLinkedList`函数反转了链表,并且使用循环打印了反转后的链表的值。你可以根据需要进行适当的调整和修改。
阅读全文