删除了链表元素

问题描述 投票:0回答:1

我有这段代码,可以删除给定值的链表元素。我试图弄清楚为什么需要初始化ListNode p并将其设置为dummy并使用p节点来遍历和更新链表。为什么我不能直接使用虚拟节点来遍历并更新链表并返回头。

public class Solution {

public static ListNode removeElements(ListNode head, int val) {

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

     return dummy.next;
}

非常感谢任何帮助!!

linked-list
1个回答
0
投票

ListNode 虚拟 = new ListNode(0); 应该 ListNode 虚拟 = new ListNode(-1);

© www.soinside.com 2019 - 2024. All rights reserved.