题目:输入一个链表的头结点,反转该链表,并返回反转后链表的头结点。
//反转字符串
#include <iostream>
using namespace std;
struct node
{
int value;
node *m_next;
};
void makenode(node *&ptr,int value)
{
if (ptr==nullptr)
{
node *currentptr=new node();
currentptr->value=value;
currentptr->m_next=nullptr;
ptr=currentptr;
}
else
{
makenode(ptr->m_next,value);
}
}
node *reversenode(node *ptr)
{
if (ptr==nullptr)
{
return nullptr;
}
node *first=nullptr;
node *head=ptr;
node *prev=nullptr;
while (head!=nullptr)
{
node *next=head->m_next;
if (next==nullptr)
{
first=head;
}
head->m_next=prev;
prev=head;
head=next;
}
return first;
}
int main()
{
node *root=nullptr;
makenode(root,1);
makenode(root,2);
makenode(root,3);
makenode(root,4);
makenode(root,5);
makenode(root,6);
makenode(root,7);
makenode(root,8);
makenode(root,9);
node *k=new node();
k=reversenode(root);
cout<<k->value<<endl;
return 0;
}