约瑟夫环问题
//约瑟夫环问题
public void josephusLoop() {
if(size <= 2){
return;
}
Node p = head;
while(size != 2){
p = p.next;
Node del = p.next;
if(del == head){
head = del.next;
} else if (del == tail){
tail = p;
}
p.next = del.next;
del.next = null;
p = p.next;
size--;
}
}
链表反转的问题
//链表反转的问题
public void reverse(){
if(size == 0 || size == 1){
return;
}
Node dumpyHead = new Node(); //虚拟头节点
Node p = head;
for(int i = 0; i < size; i++){
Node n = new Node(p.data);
if(dumpyHead.next == null){
tail = n;
}
n.next = dumpyHead.next;
dumpyHead.next = n;
p = p.next;
}
head = dumpyHead.next;
}