删除链表元素



我有这段代码,用于删除给定值的链表元素。我试图弄清楚为什么有必要初始化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;
}

任何帮助都是非常感激的!

ListNode dummy = new ListNode(0);
应该

ListNode dummy = new ListNode(-1);

相关内容

  • 没有找到相关文章

最新更新