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
个元素。