定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
反转链表因为单向链表,要保存当前结点的preNode和nextNode.
代码如下:
C语言代码:
typedef struct ListNode{
int valude;
struct ListNode* next;
}ListNode;
ListNode* ReverseList(ListNode* listHead)
{
ListNode* newListHead = NULL;
ListNode* node = listHead;
ListNode* preNode = NULL;
while (node != NULL){
ListNode* nextNode = node->next;
if (nextNode == NULL)
newListHead = node;
node->next = preNode;
preNode = node;
node = nextNode;
}
return newListHead;
}