本文共 644 字,大约阅读时间需要 2 分钟。
我正在研究列表(尝试重新创建它们),我遇到了一个奇怪的问题 . 这是我的结构:
struct listNode{
listNode(int n, listNode* ne = NULL){
value = n;
next = ne;
}
int value;
listNode* next;
};
listNode* head = NULL;
现在我创建了一个向底部添加元素的函数:
void add(int n){
if(head == NULL){
head = new listNode(n);
return;
}
listNode* n1 = head;
while(n1 != NULL){ //Should be: while(n1->next != NULL){
n1 = n1->next;
}
n1 = new listNode(n); //Should be: n1->next = new listNode(n);
}
但这不是工作 .
我将用一个方案解释我的理解:
The Beginning
HEAD = NULL;
I add 1
HEAD = [1,NULL];
I add 2
while循环到达最后一个元素(其中"next"为NULL)并在其中创建新元素
HEAD = [1,new listNode(2)];
结果
HEAD = [1,POINTER] [2,NULL];
现在,为什么在while循环之后的 n1 是不是't what I wan'?
转载地址:http://rodnv.baihongyu.com/