删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
思路:
用一个pre保存上一个指针,当相等时,pre.next指向当前指针的next,不等时pre指向当前head
复杂度分析:
时间复杂度O(n)
空间复杂度O(1)
var removeElements = function(head, val) {
let ans = new ListNode();
if(!head) return head;
ans.next = head;
let pre = ans ;
while(head){
if(head.val === val){
pre.next = head.next
}else{
pre = head;
}
head = head.next;
}
return ans.next;
};