每两个节点转一次,三个指针变量后移
代码实现
- #include<stdio.h>
- struct ListNode{
- int data;
- ListNode *next;
- }
- ListNode* reverse(ListNode* head){
- ListNode *p,*tmp ;
- p = head->next;
- head->next=NULL;
- while(p){
- tmp = p->next; //图1 保存p->next
- p->next = head; //图1 反向指向head
- head = p ; //图2 head 指向p
- p = tmp; //图2 p指向p->next
- }
- return head;
- }