Leetcode 203. Remove Linked List Elements

Remove all elements from a linked list of integers that have value val.

Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5

思路:
要移除一个节点,则需要把前一个节点的next指向当前被移除节点的next,因此需要一个pre节点。
被移除的节点可能是head节点,因此需要一个指向head的节点。

public ListNode removeElements(ListNode head, int val) {
if (head == null) {
return null;
}

    ListNode root = new ListNode(0);
    root.next = head;
    ListNode pre = root;
    ListNode dummy = head;
    while (dummy != null) {
        if (dummy.val == val) {
            pre.next = dummy.next;
        } else {
            pre = pre.next;
        }
        dummy = dummy.next;
    }

    return root.next;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容