力扣:19. 删除链表的倒数第 N 个结点

This commit is contained in:
huangge1199 2021-02-08 13:54:20 +08:00
parent ba81f7bcd9
commit 2e47275028

View File

@ -0,0 +1,31 @@
package com.code.leet.study.t20210208;
import com.code.leet.entiy.ListNode;
import java.util.ArrayList;
import java.util.List;
/**
* 给你一个链表删除链表的倒数第 n 个结点并且返回链表的头结点
* <p>
* 进阶你能尝试使用一趟扫描实现吗
*/
public class RemoveNthFromEnd {
/**
* 19. 删除链表的倒数第 N 个结点
*/
public ListNode removeNthFromEnd(ListNode head, int n) {
List<ListNode> list = new ArrayList<>();
ListNode temp = head;
while (temp != null) {
list.add(temp);
temp = temp.next;
}
if (n == list.size() && head != null) {
head = head.next;
} else if (list.size() != 1) {
list.get(list.size() - n - 1).next = list.get(list.size() - n).next;
}
return head;
}
}