递归写法:
/**
* @param {ListNode} head
* @param {number} val
* @return {ListNode}
*/
var deleteNode = function(head, val) {
if(head.val == val){
return head.next
}
head.next = deleteNode(head.next,val);
return head
};
哨兵节点:
/**
* @param {ListNode} head
* @param {number} val
* @return {ListNode}
*/
var deleteNode = function(head, val) {
let pre = new ListNode(); // 哨兵节点
pre.next = head;
let node = pre;
while (node.next) {
if (node.next.val === val) {
node.next = node.next.next;
break;
}
node = node.next;
}
return pre.next;
};
如果传入的参数是要删除的节点:
var deleteNoded = function (node){
node.val = node.next.val
node.next = node.next.next
}