提交代码
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode p1 = dummy, p2 = dummy.next;
while (p2!= null) {
while ( p2!= null && p2.val != val) {
p1.next=p2;
p1=p2;
p2=p2.next;
}
if(p2!=null&&p2.val==val) {
while(p2!=null&&p2.val==val)
p2=p2.next;
p1.next=p2;
}
}
return dummy.next;
}
}
运行结果

本文介绍了一种从链表中移除特定值元素的方法,通过创建虚拟头节点简化边界条件处理,双指针技巧实现高效遍历和删除操作。
7146

被折叠的 条评论
为什么被折叠?



