移除链表元素

(题目来源:力扣LeetCode)

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

方法:哨兵节点

题解:

class Solution {

    public ListNode removeElements(ListNode head, int val) {

      //定义哨兵节点

      ListNode sentinel = new ListNode(0);

      //设置哨兵节点的位置在头节点之前

      sentinel.next= head;

      //定义两个指针位置

      ListNode prev = sentinel, cur = head;

      while(cur!=null){

          if(cur.val==val){

              prev.next=cur.next;

          }else{

              prev = cur;

          }

          cur=cur.next;

      }

      return sentinel.next;

    }

}

你可能感兴趣的:(移除链表元素)