Data Structures and Algorithms (English) - 6-4 Reverse Linked List(20 分)

题目链接:点击打开链接

 

题目大意:略。

 

解题思路:注意:参数传进来的 L,和 return L,都是有带头节点的。

 

AC 代码

// 从头节点下一个节点,和再下一个节点开始,把它们的箭头指向反一下即可,最后到了末尾再把原来的尾巴指向头即可

List Reverse( List L )
{
    if(!L || !(L->Next) || !(L->Next->Next)) return L;
    PtrToNode nd, p=L->Next->Next, nx=L->Next;
    nx->Next=NULL; // 为return时候的末尾为NULL,否则会TLE
    while(p)
    {
        nd=p->Next; // 暂时保存,下面会用到
        p->Next=nx; 
        nx=p;
        p=nd;
    }
    L->Next=nx;

    return L;
}

 

你可能感兴趣的:(#,ACM,#,PTA)