【题目】
41个人排成一个圆圈,由第1个人开始报数,报数到3的人就自杀,然后再由下一个人重新报1,报数到3的人再自杀,这样依次下去,知道剩下最后一个人时,那个人可以自由选择自己的命运
【代码】
import java.util.*;
class test{
public class Node{
public int value;
public Node next;
public Node(int data){
this.value = data;
}
}
public Node josephusKill1(Node head,int m){
if(head==null || head.next == head || m<1){
return head;
}
Node last = head;
while(last.next != head){
last = last.next;
}
int count = 0;
while(head != last){
if(++count == m){
last.next = head.next;
count = 0;
}else{
last = last.next;
}
head = last.next;
}
return head;
}
}
这里仅介绍基础方法,下次再介绍进阶方法