题目描述:
实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true
思路:将待删除节点的下一个节点复制到待删除节点,然后删除此节点。
图示:
然后还要考虑指针的位置:
如果指针为空或者指针指向了尾节点,则返回false
代码如下:
class Remove {
public:
bool removeNode(ListNode* pNode) {
// write code here
if(nullptr==pNode->next||NULL==pNode)
return false;
pNode->val=pNode->next->val;
pNode->next=pNode->next->next;
return true;
}
};