私はリンクされたリストを反復し、すべての3番目の要素を再帰的に削除したいと思います。リンクリストからすべての3番目の要素を再帰的に削除するにはどうすればよいですか?
リストの最後に達した場合、リンクされたリストに残っている要素について同じ呼び出しを行います。私はリンクされたリストに1つの要素しか残されなくなるまでそれをやっています。期待通りに動作しない
私のソリューション:
import java.util.LinkedList;
import java.util.List;
public class test {
public static void main(String[] args) {
int randomNumber = (int)(Math.random() * 50 + 1);
List<Integer> testList = new LinkedList<Integer>();
for (int i = 1; i <= randomNumber; i++)
{
testList.add(i);
}
}
public void removeElements(List testList)
{
for(int i = 0; i < testList.size();i++){
if(i % 3 == 0){
testList.remove(i);
}
}
if(testList.isEmpty()){
return;
}
removeElements(testList-1);
}
}
だから、唯一の1が残っているまで、あなたが再帰的にすべての第三の要素を削除しているが、2つの要素がある場合、あなたは最後から二番目の再帰呼び出しに何を削除しますあなたはすべての3番目を削除するはずですか?おそらく、リストのサイズが2でない場合、ベースケースは1でなければならないでしょうか? – prsvr
私は何が行われたのかを説明した回答を追加しました。以下を確認してください。 – prsvr