天天看点

LeetCode203——移除链表元素

我的LeetCode代码仓:https://github.com/617076674/LeetCode

原题链接:https://leetcode-cn.com/problems/remove-linked-list-elements/description/

题目描述:

LeetCode203——移除链表元素

知识点:链表

思路:删除节点的关键是找到待删除节点的前一个节点

设立虚拟头节点以便于对头节点进行统一处理。

时间复杂度是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解题报告:

LeetCode203——移除链表元素