package com. my. util;
public class LinkNode {
public int value;
public LinkNode next;
public LinkNode ( int value) {
this . value = value;
}
}
package com. my. suanfa;
import com. my. util. LinkNode;
public class Solution09 {
public LinkNode removeMidNode ( LinkNode head) {
if ( head == null || head. next == null) {
return head;
}
if ( head. next. next == null) {
return head. next;
}
LinkNode pre = head;
LinkNode cur = head. next. next;
while ( cur. next != null && cur. next. next != null) {
pre = pre. next;
cur = cur. next. next;
}
pre. next = pre. next. next;
return head;
}
public LinkNode removeByRatio ( LinkNode head, int a, int b) {
if ( a < 1 || a > b) {
return head;
}
int n = 0 ;
LinkNode cur = head;
while ( cur != null) {
n++ ;
cur = cur. next;
}
n = ( int ) Math. ceil ( ( ( double ) ( n * a) ) / ( double ) b) ;
if ( n == 1 ) {
head = head. next;
}
if ( n > 1 ) {
cur = head;
while ( -- n != 1 ) {
cur = cur. next;
}
cur. next = cur. next. next;
}
return head;
}
}