0    课程地址

https://coding.imooc.com/lesson/207.html#mid=13463

 

1    重点关注

1.1    用链表实现移除链表元素实现

详见3.1

 

1.2    本节目的

对虚拟头节点的一个应用,重点看之前虚拟头节点的内容.我直接用虚拟头节点实现出来了,中间过程跳过了,有兴趣可以看看课程中间部分

 

 

2    课程内容


3    Coding

3.1    用链表实现移除链表元素实现(leetCode 203问题)

  • 实现类:
package com.company;

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        //定义虚拟头节点
        ListNode dummyHead = new ListNode();
        dummyHead.next = head;

        ListNode preNode = dummyHead;
        //1?    判断非空
        while(preNode.next!=null){

            if(preNode.next.val==val){
                ListNode delNode = preNode.next;
                preNode.next = delNode.next;
                delNode.next = null;
            }else{
                preNode = preNode.next;
            }

        }


        return dummyHead.next;
    }
}

 

  • 测试结果:

 

 

posted on 2022-10-31 16:30  菜鸟乙  阅读(15)  评论(0编辑  收藏  举报