11.15链表逆置
struct ListNode *reverse( struct ListNode *head ){ struct ListNode *L=(struct ListNode *)malloc(sizeof(struct ListNode)),*p,*q; L->next=NULL; p=head;//中间量 while(p){ q=(struct ListNode *)malloc(sizeof(struct ListNode)); q->data=p->data; q->next=L->next; L->next=q; p=p->next; } return L->next; }
函数题思路:
先定义一个新链表L,p作为中间量存储head链表,q作为中间量存储每一个链表结点的值,遍历p用头插法的把每一个结点插入L,返回新链表L。