c语言如何原地倒置链表
时间: 2024-02-02 20:04:48 浏览: 125
C语言链表倒置程序,可直接运行
链表的原地倒置是指不使用额外的空间,直接在原链表上进行操作,将链表中的节点顺序翻转。具体实现方法如下:
```c
/* 原地倒置链表 */
void reverseList(LinkNode* head) {
if (head == NULL || head->next == NULL) {
return;
}
LinkNode *p = head->next, *q = p->next;
head->next = NULL;
while (q != NULL) {
p->next = head->next;
head->next = p;
p = q;
q = q->next;
}
p->next = head->next;
head->next = p;
}
```
该方法的时间复杂度为O(n),空间复杂度为O(1)。
阅读全文