LeetCode每日一题: 移除链表元素(No.203)

158 阅读1分钟

题目:移除链表元素


删除链表中等于给定值 val 的所有节点。

示例:


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

思考:


给链表加个头结点headNode,如果headNode.next.val等于val就将headNode.next指向headNode.next.next即再下一个节点。遍历完链表后返回headNode.next即可。

实现:


class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode headNode = new ListNode(-1);
        headNode.next = head;
        ListNode cur = headNode;
        while (cur.next != null) {
            if (cur.next.val == val) {
                cur.next = cur.next.next;
            } else {
                cur = cur.next;
            }
        }
        return headNode.next;
    }
}