//递归删除元素,分为两个部分,头部(特殊处理)和头部后面两部分(子问题)
ListNode* remove(ListNode* head,int val){
//边界条件,空链表
if (head == nullptr)
return nullptr;
//删除头节点后面的所有特定节点,并且让head->next指向他们头,防止断链
head->next = remove(head->next,val);
//单独处理头节点
if(head->val == val)
{
ListNode* p = head;
head = head->next;
delete p;
return head;
}
return head;
}
递归删除链表中指定的元素
最新推荐文章于 2023-09-20 08:39:12 发布