リンクリストを表現する方法を私が知っている方法は、基本的にNodeクラス(より好ましくはstruct)を作成し、実際のlinkedListクラスを作成することです。しかし、昨日、私は単一リンクリスト操作を逆にするロジックを探していました。私が遭遇したソリューションのほぼ90%は、データ型Node*を返す関数を含むものでした。したがって、どのような操作を行ってもリストを逆にしたい場合は、再びlinkedListのタイプになりませんか?私はそれを間違った方法でやっていますか?
私がいつも行っているリンクリストの実装。
#include <iostream>
using namespace std;
struct Node
{
int data;
Node *next;
};
class linkedList
{
public:
Node* firstPtr;
Node* lastPtr;
linkedList()
{
firstPtr=lastPtr=NULL;
}
void insert(int value)
{
Node* newNode=new Node;
newNode->data=value;
if(firstPtr==NULL)
firstPtr=lastPtr=newNode;
else {
newNode->next=firstPtr;
firstPtr=newNode;
}
}
void print()
{
Node *temp=firstPtr;
while(temp!=NULL)
{
cout<<temp->data<<" ";
temp=temp->next;
}
}
};