ボードを確認しましたが、これに関するヘルプは見つかりませんでした。基本的な場合と一般的な場合を考えると、再帰関数を実装するのは簡単だと思いますが、これは私のやり方ではうまくいきません。リンクされたリストの末尾に到達するまで、リストを反復処理することになっています。次のノードが NULL の場合、最後のノードに値を格納し、そのノードを削除して、値を返す必要があります。したがって、再帰的に実行されることを除いて、dequeue メソッドに似ています。私は何を間違っていますか?
int LinkedList::removeTailRec(Node *n)
{
// check for the base case(s)
if(n->next == NULL)
{
Node *tmp = new Node();
tmp = n;
int val = n->value;
tmp = NULL;
return val;
}
else
return removeTailRec(n->next);
// else call the recursive method
}