输入一个单链表,程序需要反转链表。注意输入为NULL或者只有一个结点链表的特殊情况处理,c++实现的代码如下:
#include <iostream>
using namespace std;
struct Lnode{
int val;
Lnode* next;
};
Lnode* ReverseList(Lnode* phead){
if (phead == NULL || phead->next == NULL)
return phead;
Lnode* reverseHead = NULL;
Lnode* current = phead;
Lnode* prev = NULL;
while (current){
Lnode* next = current->next;
if (next == NULL)
reverseHead = current;
current->next = prev;
prev = current;
current = next;
}
return reverseHead;
}