遍历单链表,输出所有奇数序号结点数据 (头节点后节点为第一个结点,即输出第1.3.5.7…节点),数据间用空格隔开
时间: 2024-03-13 18:43:33 浏览: 18
好的,可以使用以下的代码实现你的需求:
```python
def print_odd_nodes(head):
node = head.next
index = 1
while node:
if index % 2 == 1: # 判断结点序号是否为奇数
print(node.data, end=' ')
node = node.next
index += 1
```
其中,`head` 为单链表的头节点,`node` 为当前遍历到的结点,`index` 为当前遍历到的结点在单链表中的序号。我们从第二个结点开始遍历,因为题目要求头节点后节点为第一个结点。
在遍历单链表的过程中,我们判断当前结点的序号是否为奇数,如果是奇数,则输出该结点的数据。最后,我们将当前结点指向下一个结点,同时将当前结点的序号加一。
可以通过以下的代码测试上述函数:
```python
class ListNode:
def __init__(self, data):
self.data = data
self.next = None
# 创建一个单链表:1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8
head = ListNode(None)
node = head
for i in range(1, 9):
node.next = ListNode(i)
node = node.next
print("单链表中所有奇数序号结点的数据为:")
print_odd_nodes(head) # 输出 1 3 5 7
```
输出结果为:
```
单链表中所有奇数序号结点的数据为:
1 3 5 7
```