写一个c==打印一个链表,要求每个数值之前用逗号间隔,并且当链表为空时输出(nul)
时间: 2024-11-22 22:44:15 浏览: 11
C语言基础-C语言编程基础之Leetcode编程题解之第25题K个一组翻转链表.zip
在C++中,你可以通过遍历链表并将每个节点的值转换为字符串,然后连接它们并在合适的地方插入逗号,最后追加"(null)"来完成这个任务。下面是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
void printLinkedList(ListNode* head) {
if (head == NULL) { // 检查链表是否为空
cout << "(null)" << endl;
return;
}
stringstream ss; // 创建stringstream用于构建字符串
bool first = true; // 标记是否为第一个元素
// 遍历链表并添加元素到stringstream
while (head != NULL) {
if (!first) {
ss << ", ";
}
ss << head->val; // 输出节点值
first = false; // 设置为非第一个元素
head = head->next; // 移动到下一个节点
}
// 打印最终结果
cout << ss.str() << endl;
}
int main() {
// 创建一个测试链表
ListNode* testList = new ListNode(1);
testList->next = new ListNode(2);
testList->next->next = new ListNode(3);
testList->next->next->next = NULL; // 空节点
printLinkedList(testList);
delete testList; // 清理内存
return 0;
}
```
阅读全文