给你一个链表,删除链表的倒数第 n
个结点,并且返回链表的头结点。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode p = new ListNode(0,head);
int len = getLen(head);
ListNode cur = p;
for(int i = 0;i < len - n;i++){
cur = cur.next;
}
cur.next = cur.next.next;
ListNode curhead = p.next;
return curhead;
}
public int getLen(ListNode p){
int len = 0;
while(p != null){
len ++;
p = p.next;
}
return len;
}
}