题意为删掉一个链表中特定值的节点,整体算法思想比较简单,但是应该注意一些小的细节
大体思想:
1、创建一个pre节点,将其next指针指向head;创建cur指针,将其指向head
2、当pre和pre->next都不为空的时候,进行循环,判断cur指向的节点的val是否与要删除的val相等。相等则用pre的next指针指向cur->next,且pre保持不变,将pre->next赋给cur;若不相等,则pre和cur同时向后移一个节点,注意判断pre是否为空,否则会出现内存泄露
while(pre->next != NULL){
if(cur->val == val){
pre->next = cur->next;
}
else
pre = pre->next;
if(pre==NULL)
break;
cur = pre->next;
}