题目
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
代码
A-B-C-D-E-F
len=6
倒数第n位=2
正着数就是m位=4
快指针先走n位 然后快慢一起走,快走到头的时候就走了m步了 这个时候慢指针刚好就到需要删除的位置了
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode dummy = new ListNode(-1);
dummy.next=head;
ListNode fast = dummy;
ListNode slow= dummy;
for(int i=1;i<=n+1;i++){
fast=fast.next;
}
while(fast!=null){
fast=fast.next;
slow=slow.next;
}
slow.next=slow.next.next;
return dummy.next;
}
}
网友评论