题解 | #删除链表的节点#
删除链表的节点
https://www.nowcoder.com/practice/f9f78ca89ad643c99701a7142bd59f5d
创建空的头节点便于返回。主要在于要知道前一个节点在哪里,以及删除位置在末尾等特殊情况
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @param val int整型
* @return ListNode类
*/
struct ListNode* deleteNode(struct ListNode* head, int val ) {
// write code here
struct ListNode *p,*pre;
p = (struct ListNode *)malloc(sizeof(struct ListNode));
p -> next = head;
pre = p;
while(head){
if(head -> val == val ){
if(head -> next){
pre -> next = head -> next;
return p -> next;
}else{
return p;
}
}else{
head = head -> next;
pre = pre -> next;
}
}
return NULL;
}