c++输出单链表中的元素,每个元素之间用逗号隔开
时间: 2024-02-13 12:00:39 浏览: 64
假设你的单链表节点结构体定义如下:
```
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
```
你可以使用如下代码输出单链表中的元素,每个元素之间用逗号隔开:
```
void printLinkedList(ListNode* head) {
ListNode* cur = head;
while (cur != NULL) {
cout << cur->val;
cur = cur->next;
if (cur != NULL) {
cout << ",";
}
}
cout << endl;
}
```
其中,`head` 是单链表的头节点指针,`cur` 是遍历单链表的指针,`cur->val` 表示当前节点的值。
相关问题
c++用递归反向输出单链表中的每个节点元素值。(提示:不带头结点)
可以使用递归的方式输出单链表的每个节点元素值,具体的实现如下:
```c++
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
void reversePrint(ListNode* head) {
if (head == NULL) {
return;
}
reversePrint(head->next);
cout << head->val << " ";
}
```
上述代码中,我们先判断当前节点是否为空,如果为空则直接返回;否则先递归输出当前节点后面的所有节点,再输出当前节点的值。
需要注意的是,这里并没有使用头结点,因此在递归过程中需要判断当前节点是否为空。另外输出的顺序是从后往前输出,符合题目要求。
用递归正向输出单链表中的每个结点元素值,不带头结点
递归正向输出单链表中的每个结点元素值,可以分为两步:
1. 输出当前结点的元素值;
2. 递归输出下一个结点的元素值。
具体的实现可以参考下面的递归函数:
```c++
void printList(ListNode* p) {
if (p == nullptr) { // 递归结束条件:结点为空
return;
}
cout << p->val << " "; // 输出当前结点的元素值
printList(p->next); // 递归输出下一个结点的元素值
}
```
其中,`ListNode` 是单链表结点的定义,包含一个整型元素值 `val` 和一个指向下一个结点的指针 `next`。注意,这个递归函数不需要头结点,因为它是从第一个结点开始递归输出的。如果链表为空,则函数直接返回,不进行任何操作。
阅读全文