19 Remove Nth Node From End of List

来源:互联网 发布:淘宝文案策划 编辑:程序博客网 时间:2024/05/29 13:39

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.

Note
Given n will always be valid.
Try to do this in one pass.

code

public class RemoveNthNodeFromEndofList {    public static ListNode removeNthFromEnd(ListNode head, int n) {        if (head == null)            return null;        ListNode dummy = new ListNode(0);        dummy.next = head;        ListNode preDel = dummy;        for (int i = 0; i < n; i++) {            if (head == null) {                return null;            }            head = head.next;        }        while (head != null) {            head = head.next;            preDel = preDel.next;        }        return dummy.next;    }}
0 0