算法导论 10.2-7

题目:给出O(N)运行时间的非递归算法,实现对一个含N个元素的链表的逆转,要求空间复杂度为O(1)

代码:

/* Assuming List with header and L is not empty */

List ReverseList( List L )
{
    Position CurrentPos, NextPos;

    NextPos = L->Next;
    L->Next = NULL;

    while ( NextPos != NULL )
    {
        CurrentPos = NextPos;
        NextPos = NextPos->Next;
        CurrentPos->Next = L->Next;
        L->Next = CurrentPos;
    }
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。