js + leetcode刷题:No.203 移除链表元素

题目:

  1. 移除链表元素
    删除链表中等于给定值 val 的所有节点。

示例:

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

解法:

此题与237对应,刚好是正常删除的方法
/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @param {number} val
 * @return {ListNode}
 */
// 80ms 37mb
var removeElements = function(head, val) {
    let newNode = new ListNode(), preNode = newNode, curNode = head
    newNode.next = head
    while(curNode){
        if(curNode.val === val){
            preNode.next = curNode.next
            curNode = preNode.next
        }else{
            preNode = curNode
            curNode = curNode.next
        }
    }
    return newNode.next
};

你可能感兴趣的