c++实现链表倒序

来源:互联网 发布:手机淘宝查价格走势 编辑:程序博客网 时间:2024/06/02 02:31

设计需求,把链表倒序头尾颠倒。

需求简单,代码简单,直接黏贴。

Java同理


节点头文件

#pragma onceclass Node{private:int id;Node *next;public:Node(int id);~Node(void);Node* getNextNode();void setNextNode(Node*);void sayId();int getId();};

节点实现

#include "Node.h"#include <iostream>using namespace std;Node::Node(int id){this->id = id;this->next = NULL;}Node::~Node(void){}Node* Node::getNextNode(){return this->next;}void Node::setNextNode(Node *next){this->next = next;}void Node::sayId(){cout<<this->id<<endl;}int Node::getId(){return this->id;}

倒序函数

Node* reverseNode(Node* head){if (head->getNextNode() == NULL){return head;}Node* phead = reverseNode(head->getNextNode());head->getNextNode()->setNextNode(head);head->setNextNode(NULL);return phead;}int main(){Node *head = NULL;Node *temp;for(int i=0; i<50; i++){if(i == 0){head = new Node(i);temp = head;}else{Node *next = new Node(i);temp->setNextNode(next);temp = next;}}Node *head1 = reverseNode(head);while(head1){head1->sayId();head1 = head1->getNextNode();}cin.get();return 0;}


原创粉丝点击