返回轨道
算法 · 2026-05-14 · 16 阅读

P48 单链表删除数字

算法 16 阅读

信号摘要

难度:Easy · 时长:03:21 · leetcode 203 · lintcode 452

P48 单链表删除数字

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你一个单链表和一个数字,你要删除节点上数字等于给定数字的那些节点,然后返回删除节点后的单链表。

比如说,给你的单链表是:

1 -> 2 -> 4 -> 1 -> 8 -> 1

要删除的数字是 1。那么删除 1 后,你要返回的单链表是:

2 -> 4 -> 8

代码

public class AlgoCasts {

  public class ListNode {
    int val;
    ListNode next;

    ListNode(int x) {
      val = x;
    }
  }

  // Time: O(n), Space: O(1)
  public ListNode remove(ListNode head, int val) {
    ListNode dummy = new ListNode(0);
    dummy.next = head;
    ListNode notEqual = dummy;

    while (notEqual.next != null) {
      if (notEqual.next.val == val) notEqual.next = notEqual.next.next;
      else notEqual = notEqual.next;
    }
    return dummy.next;
  }

}

📡 通讯频道