给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
示例
示例 1:
输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
示例 2:
输入:head = [], val = 1
输出:[]
示例 3:
输入:head = [7,7,7,7], val = 7
输出:[]
题解
在链表头部添加一个虚拟节点,遍历链表,判断下一个节点的 val 值,如果等于 val 则将下一个节点指向下下一个节点
/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val = (val===undefined ? 0 : val)* this.next = (next===undefined ? null : next)* }*//*** @param {ListNode} head* @param {number} val* @return {ListNode}*/var removeElements = function(head, val) {const l = new ListNode()l.next = headlet p = lwhile(p && p.next) {if (p.next.val === val) {p.next = p.next.next ? p.next.next : null} else {p = p.next}}return l.next};
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-linked-list-elements
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
