解释PDL语言例题 线性表逆置

可以解释一下这个吗?

试写出一个采用单链表存储的线性表A的数据元素进行逆制的算法。

PROC revA (VAR Head,A,B,C:link )
{其中A、B、C为三个指针}
BEGIN
IF Head=Nil OR Head↑.Next=Nil THEN Exit
ELSE [
A <- Head;
B <- A↑.Next;
A↑.Next <- Nil;
WHILE B↑.Next ≠Nil DO [
C <- B↑.Next;
B↑.Next <- A;
A <- B;
B <- C;
]
]
B↑.Next <- A;
Head <- B;
END