進口?Java . util . scanner;
公共?班級?主要?{
公共?靜電?作廢?main(String[]?args)?{
int?n;
掃描儀?掃描儀?=?新的?掃描儀(system . in);
System.out.println("請輸入正整數:");
n?=?scanner . nextint();
scanner . close();
PersonQuan?personQuan?=?新的?PersonQuan();
人?人;
為了什麽?(int?我?=?1;?我?& lt=?n;?i++)?{
人?=?新的?人(壹);
personQuan.addPerson(人);
}
n?=?0;
人?=?personQuan.first
什麽時候?(personQuan.first?!=?personQuan.last)?{
n++;
如果?(n?%?3?==?0)?{
//System.out.println("第壹個"?+?n/3?+?"二次移除編號:"?+?person . id);
personQuan.removePerson(人);
}
人?=?person.right
}
System.out.println("剩下最後壹個就是第壹個"?+?personQuan.first.id?+?“不可以”);
}
}
班級?人?{
int?id;
人?左;
人?對;
公共?人(int?id)?{
這個. id?=?id;
}
}
班級?PersonQuan?{
人?第壹;
人?最後;
公共?作廢?addPerson(人?人)?{
如果?(第壹?==?null)?{
首先?=?人;
最後?=?人;
person.left?=?人;
人,對嗎?=?人;
}?不然呢?{
最後壹個,對嗎?=?人;
person.left?=?最後;
人,對嗎?=?第壹;
先走。左邊?=?人;
最後?=?人;
}
}
公共?int?removePerson(人?人)?{
如果?(第壹?==?最後)?{
回歸?0;
}
如果?(人?==?第壹)?{
最後壹個,對嗎?=?person.right
人。右。左?=?最後;
首先?=?person.right
}?不然呢?如果?(人?==?最後)?{
先走。左邊?=?person.left
人。左。右?=?第壹;
最後?=?person.left
}?不然呢?{
人。左。右?=?person.right
人。右。左?=?person.left
}
回歸?1;
}
}