一、题目描述
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
二、示例
三、思路
拿到这个链表的问题我的第一眼就是去看可以快慢指针还是循环遍历,这个题目比较简单就用了遍历while中进行判断,符合条件的跳过,这里注意要break,不然会死循环,最后返回头指针就可。
四、代码
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} val
* @return {ListNode}
*/
var deleteNode = function(head, val) {
var prev = new ListNode(-1)
prev.next = head
var node = prev
while(node.next ){
if(node.next.val === val){
node.next = node.next.next
break
}
node = node.next
}
return prev.next
};