您的位置:首页 > 其它

将单向链表逆序

2017-01-16 09:59 197 查看
struct list
{
struct list *next;
int value;
};
//head--->p--->q---->r,将q的next指向p;p,q往前移动到q,r
struct list* my_reverse(struct list *pList)
{
struct list *p,*q,*r;

if(pList == NULL) return NULL;
p = pList;
q = p->next;
while(q)
{
r = q->next;
q->next = p;
p = q;
q = r;
}

pList->next = NULL;
pList = p;
return pList;
}
递归方式
struct list* listReverse(struct list *head)
{
if(!head || !head->next) return head;
struct list *res = listReverse(head->next);
head->next->next = head;
head->next = NULL;
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: