以下是将给定的单链表反转的 C 语言代码示例:
struct ListNode {
int val;
struct ListNode* next;
};
struct ListNode* reverseList(struct ListNode* head) {
struct ListNode* newHead = NULL;
struct ListNode* tmp = head;
while (tmp != NULL) {
struct ListNode* node = (struct ListNode*)malloc(sizeof(struct ListNode));
node->val = tmp->val;
node->next = newHead;
newHead = node;
tmp = tmp->next;
}
return newHead;
}
需要注意,在 C 语言中,我们需要手动进行内存分配和释放。在这个例子中,我们使用 malloc 分配新节点的内存,并在不再需要时使用 free 释放节点的内存。
另外,还要确保在调用该函数之后,及时释放原始链表的内存空间,避免出现内存泄漏。
内容由零声教学AI助手提供,问题来源于学员提问




