链表算法之【移除链表元素】
目录
LeetCode-203题
LeetCode-203题
给定一个链表的头节点head和一个值val,删除链表中所有值等于val的节点,并返回head
class Solution {public ListNode removeElements(ListNode head, int val) {// checkif (head == null)return head;// 虚拟头节点ListNode dummyHead = new ListNode();dummyHead.next = head;// 定义一个指针指向虚拟头节点ListNode p = dummyHead;// 只要还有节点while (p.next != null) {if (p.next.val == val) {// 是要删除的节点p.next = p.next.next;} else {// 不是要删除的节点p = p.next;}}// 返回头节点return dummyHead.next;}// 链表节点private static class ListNode {int val;ListNode next;public ListNode() {}public ListNode(int val) {this.val = val;}public ListNode(int val, ListNode next) {this.val = val;this.next = next;}}
}