# Remove Nth Node From End of List 解答

2022年11月23日
0 收藏 812 点赞 2,640 浏览 754 个字

### Question

Given a linked list, remove the nth node from the end of list and return its head.

For example,

`   Given linked list: 1->2->3->4->5, and n = 2.   After removing the second node from the end, the linked list becomes 1->2->3->5.`

### Solution — One pass

Use two pointers, slow and fast. Fast pointer firstly move n steps. Then, when fast pointer reaches end, slow pointer reaches the node before deleted node.

` /**  * Definition for singly-linked list.  * public class ListNode {  *     int val;  *     ListNode next;  *     ListNode(int x) { val = x; }  * }  */ public class Solution {     public ListNode removeNthFromEnd(ListNode head, int n) {         ListNode fast = head, slow = head;         if (head == null)             return head;         while (n > 0) {             fast = fast.next;             n--;         }         // If remove the first node         if (fast == null) {             head = head.next;             return head;         }         while (fast.next != null) {             fast = fast.next;             slow = slow.next;         }         slow.next = slow.next.next;         return head;     } }`

python开发_常用的python模块及安装方法

Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接：http://www.codeforces.com/contest/660/problem/CDes…

zengkefu@server1:/usr/src\$ uname -aLinux server1 4.10.0-19-generic #21…

Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式，并且由于涉及到要把拍到的照片显…

Struts的使用