ブラッシングノート(10)-逆リスト
タイトルの説明
リンクリストを入力し、リンクリストを元に戻した後、新しいリンクリストのヘッダーを出力します。
アイデア:スタックを使用し、最初からトラバースして値をスタックに置き、次にスタックからトラバースして値をノードに割り当てます。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
stack<int> s;
ListNode* p=pHead;
while(p!=NULL)
{
s.push(p->val);
p=p->next;
}
ListNode* q=pHead;
while(q!=NULL)
{
q->val=s.top();
s.pop();
q=q->next;
}
return pHead;
}
};
コメント欄にコードがあり、とても良かったです。