题目简介

leetcode
递归
typedef struct ListNode Node;
struct ListNode* reverseList(struct ListNode* head){
if (head==NULL || head->next==NULL)
return head;
Node *p = head;
head = reverseList(p->next);
p->next->next = p;
p->next=NULL;
return head;
}
迭代
typedef struct ListNode Node;
struct ListNode* reverseList(struct ListNode* head){
if(head == NULL||head->next == NULL)
return head;
Node* n1 = head;
Node* n2 = n1->next;
Node* n3 = n2->next;
head->next = NULL;
while(n2 != NULL)
{
n2->next = n1;
n1 = n2;
n2 = n3;
if(n3 != NULL)
n3 = n3->next;
}
head = n1;
return head;
}