public static int getResult(int n) {
if(n <= 1) return n;
//构建双向环形链表
CirclePeple head=null ;
for(int i = 1;i <=n ;i++) {
CirclePeple circlePeple = new CirclePeple(i);
if(i == 1) {
head = new CirclePeple(null, null, 1);
head.next = head;
head.pre = head;
}else {
circlePeple.next = head;
circlePeple.pre = head.pre;
circlePeple.pre.next = circlePeple;
head.pre = circlePeple;
}
}
return lastPople(head,2);
}
class CirclePeple{
CirclePeple next;
CirclePeple pre;
int num;
public CirclePeple(int num) {
this.num = num;
}
public CirclePeple(CirclePeple next, CirclePeple pre, int num) {
super();
this.next = next;
this.pre = pre;
this.num = num;
}
}