其中的ListNode* head = NULL;应写在代码的哪个部分
时间: 2024-11-04 10:10:34 浏览: 3
cpp代码-单链表的算法
`ListNode* head = NULL;` 这行代码应该写在链表的初始化阶段,通常是程序开始的地方或者在创建链表之前。由于这是链表的第一个节点的声明并且标记为未初始化(NULL),所以它是在整个链表结构创建之前设置的。这行代码可以放在全局变量区域,或者在函数内部作为局部变量,如果这个链表将在某个函数中被构造和使用的话。以下是完整的例子:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct ListNode {
int data;
struct ListNode* next;
} ListNode;
// 函数来创建链表
ListNode* createLinkedList(int start, int end) {
ListNode* head = NULL; // 初始化链表头部为NULL
for (int i = start; i <= end; i++) {
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->data = i;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
} else {
ListNode* current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
return head;
}
// 打印链表
void printList(ListNode* node) {
while (node != NULL) {
printf("%d -> ", node->data);
node = node->next;
}
printf("NULL\n");
}
int main() {
ListNode* list = createLinkedList(1, 20); // 创建包含1到20的链表
if (list != NULL) {
printList(list); // 打印链表的内容
free(list); // 释放链表内存
}
return 0;
}
阅读全文