标签:链表 输出 丢失 思路 反转链表 str public nod cpp
题目:
输入一个链表,反转链表后,输出链表的所有元素。
思路:
反转链表,对于片段 1--->2--->3循环操作; 要反转链表需要两步:
一,将2->next指向1 (如果不保存3那么此时就丢失了对3的引用)
二,将链表往后移 即 : 1=2; 2=3;3=3->next
注意的点:
一,首节点的next要指向NULL
二:链表的长度可能小于3
代码:
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL) return NULL; ListNode* newHead; ListNode* p1=pHead; ListNode* p2=pHead->next; ListNode* p3; if(p2!=NULL){ p3=p2->next; p1->next=NULL; p2->next=p1; while(p3!=NULL){ p1=p2; p2=p3; p3=p3->next; p2->next=p1; } newHead=p2; }else{ p1->next=NULL; newHead=p1; } return newHead; } };
标签:链表 输出 丢失 思路 反转链表 str public nod cpp
原文地址:http://www.cnblogs.com/llauser/p/7516311.html