反转链表

1、输入一个链表,反转链表后,输出链表的所有元素。

2、

//调整节点i的next指针时,除了需要知道节点i本身,还要知道i的前一个节点h,我们要把节点i的next节点指向h。还需要事先保存一下i的下一个节点j,以防链表断开。
要准备三个指针,分别指向当前遍历到的节点、它的前一个节点以及后一个节点。
/*
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode* pReverseHead = nullptr; ListNode* pNode = pHead; ListNode* pPrev = nullptr; while(pNode != nullptr){ ListNode* pNext = pNode->next; if(pNext == nullptr){ pReverseHead = pNode; } pNode->next = pPrev; pPrev = pNode; pNode = pNext; } return pReverseHead; } };

 

posted @ 2018-03-09 10:51  兔子兔子0125  阅读(76)  评论(0编辑  收藏  举报