struct ListNode reversestruct ListNode head struct ListNode prev = NULL; struct ListNode curr = head; while curr != NULL struct ListNode next = curr-next; curr-next = prev;
struct ListNode *reverse(struct ListNode *head) { // 创建两个指针,prev指向前一个节点,curr指向当前节点 struct ListNode *prev = NULL; struct ListNode *curr = head;
// 循环遍历链表,直到curr指向最后一个节点
while (curr != NULL) {
// 创建一个指针next,指向当前节点的下一个节点
struct ListNode *next = curr->next;
// 将当前节点的next指针指向前一个节点,实现反转
curr->next = prev;
// 更新prev和curr指针,分别指向当前节点和下一个节点
prev = curr;
curr = next;
}
// 返回反转后的链表的头节点
return prev;
}
原文地址: https://www.cveoy.top/t/topic/jde7 著作权归作者所有。请勿转载和采集!