链表逆序

List ReverseList(List head)  
{
if(head->next == NULL || head->next->next == NULL)
{
return head; /*链表为空或只有一个元素则直接返回*/
}

ListNode *t = NULL,
*p = head->next,
*q = head->next->next;
while(q != NULL)
{
t = q->next;
q->next = p;
p = q;
q = t;
}

/*此时q指向原始链表最后一个元素,也是逆转后的链表的表头元素*/
head->next->next = NULL; /*设置链表尾*/
head->next = p; /*调整链表头*/
return head;
}

posted @ 2012-09-27 16:33  10,000 hours coder  阅读(171)  评论(0编辑  收藏  举报