struct ListNode{
int val(x);
ListNode*next;
ListNode(x):
val(x),next(NULL){}
};
class Solution{
public:
ListNode* delecttheaimlastnode(ListNode*phead,int target){
if(phead==NULL){
return NULL;
}
ListNode*pnode=phead;
int i=0;
while(pnode!=NULL){
if(pnode->val==target){
i++;
}
pnode=pnode->next;//找指定元素出现次数
}
if(i==0){//0次就返回
return head;
}
if(i==1){
while(pnode!=NULL){
if(pnode->next->val==target){
pnode->next==pnode->next->next;
return phead;
}
else{
pnode=pnode->next;
}
}
}
while(pnode!=NULL){
if(pnode->val==target){
while(pnode->next->next==target&&pnode->next==target){
pnode=pnode->next;
}
pnode->next=pnode->next->next;
}
else{
pnode=pnode->next;
}
}
return phead;
}
};
单链表删除指定元素出现的最后一个节点
最新推荐文章于 2023-07-13 14:34:26 发布