题解 | #删除链表的节点#
删除链表的节点
https://www.nowcoder.com/practice/f9f78ca89ad643c99701a7142bd59f5d
public ListNode deleteNode (ListNode head, int val) {
// write code here
//第一步判断第一个数就要成为删除的情况
if(head.val==val){
//第一种情况返回值的时候一定不要忘了加.next
return head.next;
}
ListNode p1 = head;
ListNode p2 = head.next;
while(p2!=null){
if(p2.val != val){
//判断p2是因为如果判断p1的话就无法通过.next来跳过以达到删除的目的
p1 = p1.next;
p2 = p2.next;
}else{
p1.next = p2.next;
return head;
}
}
return null;
}
切记不要把链表当数组 及时 通过建立新的对象赋值头指针他们的指向下一个节点也是同一个节点,我觉得链表题一定多刷几遍才能记得熟悉

查看23道真题和解析