每天一道算法题(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; }
注意当为单个节点或者是为空的情况