LeetCode 203.移除链表元素

力扣题目链接

算法思想:为保证删除头结点和其他结点的操作是一样的。因此创建个虚拟头结点。

算法代码:

/**
 * 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 dummy = new ListNode(-1, head); //创建虚拟节点
        ListNode pre = dummy;
        while (pre.next != null) {
            if (pre.next.val == val){
                pre.next = pre.next.next;
            }else {
                pre = pre.next;
            }
        }
        return dummy.next;
    }
}

你可能感兴趣的:(leetcode,链表,算法)