题目内容:
方法一:(把空链表和若要删除的是头节点,单独拿出来判断)
if(head == null){
return null;
}
ListNode prev = head;
ListNode cur = head.next;
while(cur != null){
if(cur.val == val){
prev.next = cur.next;
cur = cur.next;
}else{
prev = cur;
cur = cur.next;
}
}
if(head.val == val){
head = head.next;
}
return head;
方法二:(把只需要把链表是否为空进行判断)(逻辑性强)
if(head == null){
return head;
}
ListNode cur = head;
ListNode prev = null;
while(cur != null){
if (cur.val == val){
//删除节点
if (head.val == val){ //删除头节点
head = head.next;
cur = head;
}else{ //删除非头节点
prev.next = cur.next;
cur = prev.next;
}
}else{
//不删除节点
prev = cur;
cur = cur.next;
}
}
return head;