删除链表中的元素
删除链表中等于给定值val
的所有节点。
给出链表 1->2->3->3->4->5->3
, 和 val = 3
, 你需要返回删除3之后的链表:1->2->4->5
。
public class Solution {
/*
* @param head: a ListNode
* @param val: An integer
* @return: a ListNode
*/
public ListNode removeElements(ListNode head, int val) {
// write your code here
if(head==null){
return null;
}
while(head.val==val){
head=head.next;
if(head==null){//链表中全是需要删除的元素
return null;
}
}
ListNode temp=head;//记录头结点
while(head.next!=null){
if(head.next.val==val){
if(head.next.next!=null){//判断head。next是不是最后一个节点
head.next=head.next.next;
}else{
head.next=null;
}
}
else{
head=head.next;
}}
return temp;
}}