面试题18:删除链表的结点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。
class Solution {
public:
ListNode* deleteNode(ListNode* head, int val) {
if(head->val == val)
return head->next;
ListNode* pNode = head;
ListNode* cNode = head->next;
while(cNode != nullptr && cNode->val != val)
{
pNode = cNode;
cNode = cNode->next;
}
if(cNode!=nullptr)
pNode->next = cNode->next;
return head;
}
};