在链表的末尾插入一个节点无效。在链表的末尾插入一个节点
void insert_end(int item){
nodeptr newNode = new ListNode;
newNode->data = item;
newNode->next = NULL;
if(head == NULL){
head = newNode;
curr = head;
}else{
curr = head;
while(curr != NULL) curr = curr->next;
curr = newNode;
}
}
另一个有效在链表中插入节点的片段。
void insert_end(int item){
nodeptr newNode = new ListNode;
newNode->data = item;
newNode->next = NULL;
if(head == NULL){
head = newNode;
curr = head;
}else{
curr = head;
while(curr->next != NULL) curr = curr->next;
curr->next = newNode;
}
}
我的问题是为什么第一个是无效的?其实两个片段应该是相似的。 假设我已经有三个节点。现在我想插入另一个节点。
- 作为curr = NULL时的第一个算法,while循环将不会满足。
- 作为curr-> next = NULL时的第二种算法,while循环将不会满足。
所以我可以说第一个算法的'curr'和第二个算法'curr-> next'都相似,当“while循环”终止时? 如果它不相似那么为什么?
您可以为正在使用的语言添加标签吗? –
增加了C++。 谢谢你通知我。 – Nahids