力扣:19. 删除链表的倒数第 N 个结点
This commit is contained in:
parent
ba81f7bcd9
commit
2e47275028
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user