三个指针,标识当前节点,当前节点前一个节点,以及后一个节点。注意处理头指针为NULL的情况,返回值是最后一个节点
我的代码:
1 ListNode* ReverseList(ListNode* pHead) 2 { 3 ListNode *proNode = NULL; 4 ListNode *Node = pHead; 5 ListNode *nextNode = NULL; 6 if (pHead == NULL) 7 return NULL; 8 while (Node->m_pNext != NULL) 9 { 10 nextNode = Node->m_pNext; 11 Node->m_pNext = proNode; 12 proNode = Node; 13 Node = nextNode; 14 } 15 Node->m_pNext = proNode; 16 return Node; 17 }