思路:先将链表遍历一遍,取得其结点数,然后在进行遍历,删除题目要求节点即可
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode temp=new ListNode(0,head);//创建头结点
int length=getlength(head);
ListNode ans=temp;
int i;
for(i=1;i<length-n+1;i++){
ans=ans.next;
}
ans.next=ans.next.next;
return temp.next;
}
public int getlength(ListNode head){
ListNode dum=head;
int num=0;
while(dum!=null){
num++;
dum=dum.next;
}
return num;
}
}
创建头结点是为处理了链表只有一个结点的情况