leetcode-hot-100-19删除链表的第N个节点
目录
【leetcode hot 100 19】删除链表的第N个节点
解法一:将 ListNode 放入 ArrayList 中,要删除的元素为 num = list.size()-n 。如果 num = 0 则将头节点删除;否则利用 num-1 个元素的 next 删除第 num 个元素。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
List<ListNode> list = new ArrayList();
ListNode prev = head;
while(prev != null){
list.add(prev);
prev = prev.next;
}
int num = list.size()-n;
if(num==0){
head=head.next;
}
else{
prev = list.get(num-1); // 得到要删除的数的前一个数
prev.next = prev.next.next;
}
return head;
}
}注意:
- 如果
num = 0则将头节点删除;否则利用num-1个元素的next删除第num个元素。