单链表删除数字

单链表删除数字

问题

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

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

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;
  }

}

  转载请注明: ForwardXu 单链表删除数字

 上一篇
有序链表去重 有序链表去重
有序链表去重问题 这个题目说的是,给你一个单链表,这个单链表节点上的数字是有序的。对于出现多次的数字,你要把重复的去掉,只保留一个即可。最后返回去重后的单链表。 比如说,给你的有序单链表是: 1 -> 1 -> 2 -> 2 -> 4
2018-12-27
下一篇 
链表的相交节点 链表的相交节点
链表的相交节点问题 这个题目说的是,给你两个单链表,你要找到它们相交的第一个节点。如果两个链表没有相交,则返回空指针。假设链表无环,并且你不能改变它的原始结构。另外要求算法是线性时间复杂度,空间复杂度要求是 O(1)。 比如说,两条链表分别
2018-12-26
  目录