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