链表结构体
struct ListNode{
int val; // 节点值
struct ListNode* next; // 指向下一个节点的指针
};
链表反转
要求 输入 {123}
输入{空}
返回{321}
返回{空}
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
*@param head ListNode类 //函数注释
*@return ListNode类 //
struct ListNode* ReverseList(struct ListNode* head ) {
// 反转链表函数,输入参数为头节点指针head
head == NULL || head->next == NULL ? head : head->next; // 该行代码逻辑有误,应将其删除
// 定义三个节点指针,prev指向前一个节点,curr指向当前节点,next指向下一个节点
struct ListNode* prev = NULL;
struct ListNode* curr = head;
struct ListNode* next = NULL;
while (curr!= NULL)
{
next = curr->next;
curr->next = prev; // 当前节点指向前一个节点
prev = curr; // 前一个节点向后移动
curr = next; // 当前节点向后移动
}
return prev; // 返回反转后的链表头节点指针
}