我一直在尝试从单个链表中删除第一个节点 . 我做的是如下
创建指向头节点的临时节点
将头部移动到下一个节点
释放临时节点并返回头部
生成一个简单的链表后: 1 - > 2 -> 3 -> 4 -> 5
并调用我的方法删除第一个节点,结果是不正确的 . 它返回以下链表: 0 -> 2 -> 3 -> 4 -> 5
我不明白为什么 0 仍然存在 .
#include
#include
using namespace std;
struct Node
{
int data;
struct Node *next;
};
Node* Delete(Node *head)
{
Node* temp = head;
head = head->next;
delete temp;
return head;
}
int main(void) {
Node* head = new Node();
Node* temp = head;
for(int i=1; i<=5; i++)
{
Node* newNode = new Node();
newNode->data = i;
newNode->next = NULL;
temp->next = newNode;
temp = newNode;
}
Delete( head = head->next );
while(head != NULL)
{
cout<data<
head = head->next;
}
cout<
return 0;
}