给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

    示例 1:
    image.png

    输入: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
    输出:[]

    1. /**
    2. * Definition for singly-linked list.
    3. * function ListNode(val, next) {
    4. * this.val = (val===undefined ? 0 : val)
    5. * this.next = (next===undefined ? null : next)
    6. * }
    7. */
    8. /**
    9. * @param {ListNode} head
    10. * @param {number} val
    11. * @return {ListNode}
    12. */
    13. var removeElements = function (head, val) {
    14. // head 为null时结束
    15. if (head == null) {
    16. return head;
    17. }
    18. // 递归
    19. head.next = removeElements(head.next, val);
    20. // 值相等的节点跳过
    21. return head.val === val ? head.next : head;
    22. };

    image.png