每天一道算法题(16)——翻转链表

题目

            反转单向链表。如1---->2---->3为3--->2----->1

思路

             使用两个临时指针,依次反转。

代码

 struct ListNode
{ 
      int        m_nKey;
      ListNode*  next;
};

ListNode* DeleteNode(ListNode* pListHead)
{
      if(!pListHead ||! pListHead->next )
            return pListHead;
	
	 ListNode* preNode=NULL;
	 ListNode* nextNode=NULL;
	 ListNode* currentNode=pListHead;

	 
	 while(!currentNode){
		nextNode=currentNode->next;//保存下一节点
		
		currentNode->next=preNode;
		preNode=currentNode;
		currentNode=nextNode;
	 }
	 return preNode;
} 

    注意当为单个节点或者是为空的情况




原文地址:https://www.cnblogs.com/engineerLF/p/5393022.html