
1 2 3 4 5 6
|
单链表定义 public class ListNode{ int val; ListNode next; ListNode(int x){val = x;} }
|
创建一个工作节点,好处是链表为单节点时的情况也能包括进去,第二点好处是不需要动题设给的指针
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public class Solution{ public ListNode removeNthNodeFromEnd(ListNode head , int n){ ListNode start = new ListNode(0); start.next = head; ListNode fast = start; ListNode slow = start; for(int i = 0 ; i <= n ; i++){ //让fast和slow两指针之间gap为n fast = fast.next; } while(fast.next != null){ //fast和slow指针同速前进,直到最后指向null fast = fast.next; slow = slow.next; } slow.next = slow.next.next; //删除一个节点 return start.next; } }
|

近期评论