正向建立单链表。题目描述 题目内容:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。 输入格式:一行内输入若干个正整数,之间用空格隔开,并以-1结束。 输出格式:一行内输出建立的单链表数据结果,之间用两个分隔符 -- 隔开,结束标志-1不输出。 输入样例:2 4 6 8 10 -1 输出样例:--2--4--6--8--10 测试用例 用例1 分数: 25 错误提示: 题目运行时间限制: 500ms 题目运行内存限制: 32000kb
时间: 2024-02-05 21:13:31 浏览: 114
以下是 C++ 代码实现,思路是先定义一个空链表,然后每次读入一个数就在链表头插入一个新的节点。最后遍历链表输出结果即可。
```c++
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
int main() {
int x;
ListNode* head = NULL;
cin >> x;
while (x != -1) {
ListNode* newNode = new ListNode(x);
newNode->next = head;
head = newNode;
cin >> x;
}
while (head != NULL) {
cout << "--" << head->val;
head = head->next;
}
cout << endl;
return 0;
}
```
相关问题
正向建立单链表。题目描述 题目内容:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。 输入格式:一行内输入若干个正整数,之间用空格隔开,并以-1结束。 输出格式:一行内输出建立的单链表数据结果,之间用两个分隔符 -- 隔开,结束标志-1不输出。
以下是 Python 代码实现:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
head = None
while True:
num = int(input())
if num == -1:
break
new_node = Node(num)
new_node.next = head
head = new_node
result = ""
while head:
result += str(head.data) + " -- "
head = head.next
print(result[:-4]) # 去掉最后的 --
```
使用链表来实现,每次输入一个数时就创建一个新的节点,将其插入到链表的头部,这样最后得到的链表是按照输入数据的逆序建立的。然后遍历链表,将每个节点的数据转换成字符串并拼接到结果字符串中,末尾的 `--` 需要去掉。
正向建立单链表。题目描述\n\n题目内容:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。\n\n\n输入格式:一行内输入若干个正整数,之间用空格隔开,并以-1结束。\n\n输出格式:
题目描述:
正向建立单链表。
题目内容:输入若干个正整数(输入-1为结束标志),要求按输入的逆序建立一个单链表,并输出该单链表。
输入格式:一行内按逆序输入若干正整数,以-1为结束标志。
输出格式:输出格式与建立链表的方式无关。
输入格式:一行内按逆序输入若干正整数,以-1为结束标志。
输出格式:输出格式与建立链表的方式无关。
解答:对于输入的每个正整数,我们可以按照“头插法”依次将元素插入链表中。因此,我们可以使用一个头指针,每次向其前面插入一个元素即可。如果输入-1,则说明已经输入完毕,此时应该输出链表的内容。具体实现过程可以参考下面的代码:
n = int(input()) # 输入第一个正整数
head = None # 头节点初始化为空
while n != -1:
node = {'data': n, 'next': head} # 新建节点,其指向头节点
head = node # 更新头节点
n = int(input()) # 输入下一个正整数
# 输出链表
while head:
print(head['data'], end=' ')
head = head['next']
阅读全文