编程题 题目内容:设计一个算法,逆序输出单链表中的所有元素 输入格式:…… 输出格式:…… 输出样例:……
时间: 2024-09-23 15:13:15 浏览: 61
c++(2).md
编程题的设计通常涉及到数据结构和算法的理解。对于这个题目,你需要实现一个函数或者方法,其目的是逆序输出给定的单链表中的每个元素。这里是一个基本的Python示例:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverse PrintLinkedList(head):
if not head or not head.next:
print(head.val) # 如果链表为空或只有一个节点,直接打印它
else:
prev_node = None
curr_node = head
while curr_node:
# 保存当前节点的值
print(curr_node.val)
# 更新指针,使得curr_node指向prev_node
prev_node, curr_node = curr_node, curr_node.next
# 由于while循环已经结束,此时prev_node会指向原链表的尾部
# 所以再打印一次prev_node的值,即链表的最后一个元素
# 示例
# 创建链表 [1, 2, 3, 4, 5]
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
head.next.next.next = ListNode(4)
head.next.next.next.next = ListNode(5)
reverse_PrintLinkedList(head) # 输出:5 4 3 2 1
```
阅读全文