P48 单链表删除数字
算法 16 阅读
信号摘要
难度:Easy · 时长:03:21 · leetcode 203 · lintcode 452
未对外公开播放权限
点击查看说明
描述
这个题目说的是,给你一个单链表和一个数字,你要删除节点上数字等于给定数字的那些节点,然后返回删除节点后的单链表。
比如说,给你的单链表是: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;
}
}