https://blog.csdn.net/derrantcm/article/details/46669039
typedef struct node
{
int m_nValue;
struct node* m_pNext;
}ListNode;
ListNode* reverseList(ListNode* pHead) {
if (NULL == pHead) {
return NULL;
}
ListNode *newHead = (ListNode*)malloc(sizeof(ListNode));
newHead->m_pNext = pHead;
ListNode *t = pHead->m_pNext;
newHead->m_pNext->m_pNext = NULL;
while (t) {
ListNode *temp = t;
t = t->m_pNext;
temp->m_pNext = newHead->m_pNext;
newHead->m_pNext = temp;
}
return newHead->m_pNext;
}
ListNode* pHead = NULL;
ListNode* pNode1 = NULL;
ListNode* pNode2 = NULL;
ListNode* pNode3 = NULL;
pHead = (ListNode*)malloc(sizeof(ListNode));
pNode1 = (ListNode*)malloc(sizeof(ListNode));
pNode2 = (ListNode*)malloc(sizeof(ListNode));
pNode3 = (ListNode*)malloc(sizeof(ListNode));
pHead->m_nValue = 0;
pHead->m_pNext = pNode1;
pNode1->m_nValue = 1;
pNode1->m_pNext = pNode2;
pNode2->m_nValue = 2;
pNode2->m_pNext = pNode3;
pNode3->m_nValue = 3;
pNode3->m_pNext = NULL;
ListNode *reverseNode = reverseList(pHead);