题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
struct ListNode* ReverseList(struct ListNode* head ) {
// write code here
struct ListNode* fhead = (struct ListNode*)malloc(sizeof(struct ListNode));//进行定义了一个头结点
struct ListNode* p = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* q = (struct ListNode*)malloc(sizeof(struct ListNode));
fhead->next = NULL;
p = head;
while(p)//主要利用了头插法将原本的链表进行倒叙输出
{
q = p->next;
p->next = fhead->next;
fhead->next = p;
p = q;
// printf("%d",p->val);
}
return fhead->next;
}
#牛客网题目#
查看17道真题和解析