题目:输入一个链表的头结点,反转该链表,并返回反转后链表的头结点。
//反转字符串 #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; }