删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
解题思路:分两种情况
1)要删除的结点不是头节点
a)当前元素不是要删除的元素,向后移动
b)要删除的是当前元素,改变引用指向
2)要删除的节点是头节点
返回空
class Solution {
public ListNode removeElements(ListNode head, int val) {
if(head==null){
return null;
}
ListNode cur=head.next;
ListNode prev=head;
while(cur!=null){
if(cur.val==val){
prev.next=cur.next;
cur=prev.next;
}else{
prev=cur;
cur=cur.next;
}
}
if(head.val==val){
head=head.next;;
}
return head;
}
}