描述
输入一个链表,反转链表后,输出新链表的表头。
示例1
输入:
{1,2,3}
返回值:
{3,2,1}
代码:
struct ListNode* ReverseList(struct ListNode* phead ) {
// write code here
/* 不带头结点的
struct ListNode *newlist;
newlist=NULL;
struct ListNode *p;
while(phead!=NULL){
p=phead->next;
phead->next=newlist;
newlist=phead;
phead=p;
}
return newlist;
*/
//带头结点的
struct ListNode* newlist=(struct ListNode*) malloc(sizeof(struct ListNode));
newlist->next=NULL;
struct ListNode*p;
while(phead){
p=phead->next;
phead->next=newlist->next;
newlist->next=phead;
phead=p;
}
return newlist->next;
}