/*
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->next == nullptr) return false;
ListNode *p_next = pNode->next;//p的下一个节点指针
while(p_next->next){//当最后一个节点的next为空指针时跳出循环
pNode->val = p_next->val;//让p的后面的节点的值赋给前一个节点
pNode = pNode->next;//索引下个节点
p_next = p_next->next;
}
pNode->val = p_next->val;
pNode->next = nullptr;//断开原本最后的一个节点,则原本倒数第二个的节点变为最后一个节点,且链表总节点-1了。
return true;
}
};