#include<iostream>
using namespace std;
struct ListNode {
int value;
ListNode* pnext;
};
void DeleteNode(ListNode** pListHead,ListNode* pDeleted) {
if (!pListHead || !pDeleted) return;
if (pDeleted->pnext != NULL) {
ListNode *p = pDeleted->pnext;
pDeleted->value = p->value;
pDeleted->pnext = p->pnext;
delete p;
p = NULL;
}
else if (pDeleted->pnext == NULL) {
ListNode* p = *pListHead;
if (*pListHead == pDeleted) {
*pListHead = pDeleted = NULL;
}
while (p!=pDeleted){
p++;
}
delete p;
}
}
int main()
{
ListNode* t = new ListNode();
t->value = 1;
t->pnext = new ListNode();
t->pnext->value = 2;
t->pnext->pnext = new ListNode();
t->pnext->pnext->value = 3;
ListNode *p = t;
DeleteNode(&p,t);
cout << t->value << " " << t->pnext-> value << endl;
p = t->pnext;
DeleteNode(&p, t);
cout << t->value << endl;
p = t;
DeleteNode(&p, t);
return 0;
}
剑指offer18
最新推荐文章于 2023-02-11 17:26:06 发布