在鏈表的末尾插入一個節點無效。在鏈表的末尾插入一個節點
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