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; } }
- 测试结果:
诸葛