给你单链表的头节点
head
,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2:
输入:head = [1,2] 输出:[2,1]示例 3:
输入:head = [] 输出:[]
头插法:
在插入时,新的结点插入到当前链表的表头。
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
struct ListNode* reverseList(struct ListNode* head) {struct ListNode* list,*p;list=(struct ListNode*)malloc(sizeof(struct ListNode));list->next=NULL;//先建立一个带头结点的单链表p=head;struct ListNode* s;while(p!=NULL){//头插法s=(struct ListNode*)malloc(sizeof(struct ListNode));s->val=p->val;s->next=list->next;list->next=s;p=p->next;}return list->next;
}