我的LeetCode代码仓:https://github.com/617076674/LeetCode
原题链接:https://leetcode-cn.com/problems/remove-linked-list-elements/description/
题目描述:
知识点:链表
思路:删除节点的关键是找到待删除节点的前一个节点
设立虚拟头节点以便于对头节点进行统一处理。
时间复杂度是O(n),其中n为链表中的节点数。空间复杂度是O(1)。
JAVA代码:
public class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode dummyHead = new ListNode(-1);
dummyHead.next = head;
ListNode prev = dummyHead;
while(prev.next != null) {
if(prev.next.val == val) {
prev.next = prev.next.next;
}else {
prev = prev.next;
}
}
return dummyHead.next;
}
}
LeetCode解题报告: