(一、暴力法)
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode h=new ListNode();//新定义一个新链表用来返回head链表的头结点
h.next=head;//h.next表示head的头结点
ListNode number=new ListNode();//定义一个number链表用来统计head链表的长度
number=head;//number表示head的头结点
int i=0;//定义初始长度为0
while(number!=null){//当number不为null时,长度加1
number=number.next;//number指向下一个结点
i++;//长度加1
}
if(n==i){//如果删除的是第一个结点
h.next=head.next;//h.next表示的头结点指向head的下一个结点head.next
return h.next;//并且返回头结点
}
for(int j=0;j<i-n-1;j++){//将head指向要被删除的结点的前一位
head=head.next;
}
head.next=head.next.next;//删除该节点(就是将要被删除结点的前一位的下一个结点指向被删除结点的下一个结点)
return h.next;//返回头结点
}
}