【发布时间】:2016-06-04 14:42:55
【问题描述】:
我正在尝试将一个简单的节点插入到链表的最后一个位置。但是我遇到了麻烦。
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
struct Node
{
int data;
struct Node* next;
};
Node* Insert(Node* head, int data);
Node* print(Node* head);
void ReverseIterative();
Node* Insert(Node* head, int data)
{
Node* newNode;
newNode->data = data;
newNode->next = NULL;
if(head == NULL)
{
return newNode;
}
Node* curr=head;
while(curr->next!=NULL)
{
curr=curr->next;
}
curr->next = newNode;
return head;
}
Node* printList(Node* head)
{
while(head)
{
cout<<head->data;
head=head->next;
}
cout<<endl;
}
int main()
{
struct Node* head = NULL;
head = Insert(head, 2);
head = Insert(head, 4);
printList(head);
return 0;
}
我不确定我做错了什么。请帮忙~!我检查了我的逻辑,一切都应该是正确的。这可能是我在 insert() 中创建新节点的方式。我认为我的语法有问题,但我不确定它是什么。我真的很讨厌这种情况发生......
感谢您的帮助
【问题讨论】:
-
“遇到麻烦”不能很好地描述您的问题,是吗?请具体。
-
为什么你会认为这是你的语法?您是否收到编译器错误?如果有,那是什么?
-
停止查看代码并使用调试器单步执行代码的最佳时机。指针会指向。你的一个没有。
-
你永远不会在这条线上分配
newNode:Node* newNode; -
@Telenoobies “代码是可编译的,” 这是在调试器中运行代码的请求的非常错误的响应。经常出现,而且总是走错路。
标签: c++ linked-list