用c语言改写这个代码
时间: 2024-09-10 17:14:29 浏览: 51
当然可以。这里是一个C语言版本的链表节点和基本操作的代码示例:
```c
// 定义链表节点结构体
typedef struct Node {
int val;
struct Node* next;
} Node;
// 初始化链表节点
Node* createNode(int val) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配内存
if (newNode != NULL) {
newNode->val = val;
newNode->next = NULL; // 初始化next为NULL
return newNode;
}
else {
printf("Memory allocation failed.\n");
return NULL;
}
}
// 连接两个节点
void connectNodes(Node** head, int val) {
Node* newNode = createNode(val);
if (newNode != NULL) {
if (*head == NULL) { // 如果链表为空,新节点作为头节点
*head = newNode;
} else {
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode; // 插入到链表的末尾
}
}
}
// 打印链表
void printList(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->val);
temp = temp->next;
}
printf("\n");
}
int main() {
Node* head = createNode(1); // 创建第一个节点
connectNodes(&head, 2); // 连接第二个节点
printList(head); // 输出链表
return 0;
}
```
这段代码首先定义了一个链表节点结构体,然后分别实现了创建节点、连接节点和打印链表的功能。注意C语言中需要手动管理内存分配和释放。
阅读全文