面试中常见问题之单链表逆置

来源:岁月联盟 编辑:exp 时间:2012-08-22
很多大公司在面试时,喜欢让面试者在纸上写出代码,比较常见的一个问题就是链表逆置
先将代码写在下面拱参考:
[cpp] 
void Reverse(node *head) 

 
    node *p,*q,*r; 
    p=head->next; 
    if(p==NULL||p->next==NULL) 
    { 
        //说明没有元素或者仅有一个元素,不用逆置 
        return; 
    } 
 
        q=p->next; 
 
    while(q) 
    { 
 
        r=q->next; 
        p->next=r;//将q删除 
 
        //然后将q插入到第一个节点 
        q->next=head->next; 
        head->next=q; 
         
        q=r; 
    }