把后继结点的值赋值给已知结点。
#include <iostream> struct Node { int data; Node* next; }; bool removeNode(Node* vNode) { if (vNode == NULL || vNode->next == NULL) return false; Node* pNext = vNode->next; vNode->data = pNext->data; vNode->next = pNext->next; delete pNext; pNext = NULL; } void initList(Node* vRoot) { if (vRoot == NULL) { std::cout << "wrong node\n"; return ; } for (int i=0; i<20; ++i) { Node* Temp = new Node; Temp->data = i + 1; Temp->next = vRoot->next; vRoot->next = Temp; } } int main() { Node* Root = new Node; Root->next = NULL; initList(Root); while (Root->next)//最后一个结点没有删除 { if (!removeNode(Root)) break; } std::cout << Root->data << std::endl; delete Root; Root = NULL; system("pause"); return 0; }
009实现一个算法来删除单链表中的一个结点,只给出指向那个结点的指针(keep it up),布布扣,bubuko.com
009实现一个算法来删除单链表中的一个结点,只给出指向那个结点的指针(keep it up)
原文地址:http://blog.csdn.net/xiaoliangsky/article/details/38693921