力扣203.移除链表元素

1.题目介绍:

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

力扣203.移除链表元素_第1张图片

移除链表元素

2.思路画图分析

2.1一般情况

力扣203.移除链表元素_第2张图片

力扣203.移除链表元素_第3张图片  力扣203.移除链表元素_第4张图片 力扣203.移除链表元素_第5张图片 2.2特殊情况

 力扣203.移除链表元素_第6张图片

力扣203.移除链表元素_第7张图片

//最终代码实现
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        if(head==null){
            return null;
        }
        ListNode del=head.next;
        ListNode pre=head;
        while(del!=null){
            if(del.val==val){
                pre.next=del.next;
                del=del.next;
            }
            else{
                pre=del;
                del=del.next;
            }
        }
        if(head.val==val){
            head=head.next;
        }
        return head;
    }
}

你可能感兴趣的:(力扣题库,链表,leetcode,数据结构,算法,java)