题目
Remove all elements from a linked list of integers that have value val.
Example:
Input: 1->2->6->3->4->5->6, val = 6Output: 1->2->3->4->5
题意
将给定链表中所有含有指定值的结点删除。
思路
注意需要连续删除结点的情况。
代码实现
Java
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dumb = new ListNode(0);dumb.next = head;ListNode pre = dumb;ListNode cur = head;while (cur != null) {if (cur.val == val) {pre.next = cur.next;cur = cur.next;} else {pre = pre.next;cur = cur.next;}}return dumb.next;}}
JavaScript
/*** @param {ListNode} head* @param {number} val* @return {ListNode}*/var removeElements = function (head, val) {let dummy = new ListNode(0, head)let pre = dummylet cur = headwhile (cur) {if (cur.val === val) {pre.next = cur.next} else {pre = cur}cur = cur.next}return dummy.next}
