題目描述
實現一個算法,刪除單向鏈表中間的某個結點,假定你只能訪問該結點。
給定帶刪除的節點,請執行刪除操作,若該節點爲尾節點,返回false,否則返回true
分析:題目的意思是隻能訪問待刪除的節點,其他的節點不能訪問。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};*/
class Remove {
public:
bool removeNode(ListNode* pNode) {
// write code here
if(pNode==NULL||pNode->next==NULL)
return false;
else
{
ListNode* p=pNode->next;//另外申請一個節點,用它來存放待刪除節點的下一個節點,
pNode->next=pNode->next->next;
pNode->val=p->val;
delete p;
return true;
}
}
};