题目:
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
图解
难点
if(head.val!=val)
代码实现
class Solution {
public ListNode removeElements(ListNode head, int val) {
if(head==null){
return null;
}
ListNode root=new ListNode(0); //先定义一个虚结点并赋任意值
ListNode cur=root; //创建cur指针从root结点开始移动
ListNode key=head;
while(head!=null){
if(head.val!=val){ //链表中的val的值与传入val不相等
cur.next=head;
cur=cur.next;
}
head=head.next; //如果链表中所指元素与val值相等时什么也不做,只把head后移
}
cur.next=null; //防止与之前链表有纠缠所以将cur的下一个进行置空
return root.next; //返回第一个结点
}
}