题目16:反转链表

来源:互联网 发布:vb和vc 编辑:程序博客网 时间:2024/05/18 23:28

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。

思路:我们需要定义三个指针,分别指向当前结点,它的前一个结点及它的后一个结点。最后试着找到反转后链表的头结点。

//链表的结点定义如下:#include<iostream>using namespace std;struct ListNode{int m_key;ListNode* m_next;};ListNode* Reverse(ListNode*head){if(head==NULL)return NULL;ListNode*pReHead=NULL;//反转之后的结点ListNode*p=head;ListNode*pPrev=NULL;//前一个结点while(p!=NULL){ListNode*pNext=p->m_next;//它的后一个结点if(pNext==NULL)//就1个结点pReHead=p;p->m_next=pPrev;pPrev=p;p=pNext;}return pReHead;}


 

 

 

 

0 0
原创粉丝点击