面试题16:反转链表

三个指针,标识当前节点,当前节点前一个节点,以及后一个节点。注意处理头指针为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 }

 

posted on 2016-07-05 21:07  已停更  阅读(170)  评论(0编辑  收藏  举报