单链表删除数字
问题
这个题目说的是,给你一个单链表和一个数字,你要删除节点上数字等于给定数字的那些节点,然后返回删除节点后的单链表。
比如说,给你的单链表是:
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;
}
}