如何创建一个空的单链表
时间: 2023-04-02 08:00:28 浏览: 81
要创建一个空的单链表,需要先定义一个链表结构体,包含一个指向链表头节点的指针。然后将该指针初始化为 NULL,表示链表为空。具体代码如下:
```
typedef struct ListNode {
int val;
struct ListNode *next;
} ListNode;
ListNode* createList() {
ListNode *head = NULL;
return head;
}
```
这样就创建了一个空的单链表。
相关问题
c语言创建一个单链表代码
以下是一个简单的 C 语言单链表的实现代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
struct Node
{
int data;
struct Node *next;
};
// 定义链表头指针
struct Node *head = NULL;
// 在链表尾部插入元素
void insert(int data)
{
// 创建新节点
struct Node *new_node = (struct Node*) malloc(sizeof(struct Node));
new_node->data = data;
new_node->next = NULL;
// 如果链表为空,将新节点作为头节点
if (head == NULL)
{
head = new_node;
return;
}
// 找到链表尾部,并插入新节点
struct Node *last_node = head;
while (last_node->next != NULL)
{
last_node = last_node->next;
}
last_node->next = new_node;
}
// 打印链表
void print_list()
{
struct Node *node = head;
while (node != NULL)
{
printf("%d ", node->data);
node = node->next;
}
printf("\n");
}
int main()
{
// 在链表尾部插入元素
insert(1);
insert(2);
insert(3);
// 打印链表
printf("链表:");
print_list();
return 0;
}
```
在这个代码中,我们定义了 `struct Node` 结构体来表示链表节点。`head` 变量是一个指向链表头节点的指针,并且被初始化为 `NULL`。`insert` 函数用于在链表尾部插入元素,`print_list` 函数用于打印链表。在 `main` 函数中,我们创建一个包含三个元素的链表,并打印出其中的元素。
创建一个带头结点的单链表
好的,以下是创建一个带头结点的单链表的 C++ 代码示例:
```c++
#include <iostream>
using namespace std;
struct Node {
int data;
struct Node* next;
};
int main() {
struct Node* head = new Node; // 创建头结点
head->next = NULL; // 初始为空链表
struct Node* p = head; // p指向尾结点
// 依次插入5个结点
for (int i = 1; i <= 5; i++) {
struct Node* temp = new Node;
temp->data = i;
temp->next = NULL;
p->next = temp;
p = temp;
}
// 遍历链表并输出结点值
struct Node* q = head->next;
while (q != NULL) {
cout << q->data << " ";
q = q->next;
}
return 0;
}
```
输出结果为:1 2 3 4 5
在这个示例代码中,我们首先创建了一个头结点,然后创建一个指针p指向尾结点,初始时指向头结点。接着,我们使用for循环插入5个结点,每次插入都把新结点链接到p指向的结点后面,并把p指针指向新结点。最后,我们使用另一个指针q从头结点开始遍历链表,并输出每个结点的值。