/*
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;
    }
};