# 203. 移除链表元素

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

# 解题思路

impl Solution {
    pub fn remove_elements(head: Option<Box<ListNode>>, val: i32) -> Option<Box<ListNode>> {
        let mut dummy_head = Box::new(ListNode::new(0));
        dummy_head.next = head;
        let mut current_node = &mut dummy_head;

        while let Some(ref mut node) = current_node.next {
            if node.val == val {
                current_node.next = node.next.take();
            } else {
                current_node = current_node.next.as_mut().unwrap();
            }
        }

        dummy_head.next
    }
}

# 参考