以下は、リンクリストの最後にノードを挿入するためのフラグメントが無効です。リンクリストの最後にノードを挿入する
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;
}
}
私の質問はなぜ1番目が無効ですか?実際には2つの断片が似ているはずです。 私はすでに3つのノードがあるとします。今私は別のノードを挿入したい。
- curr = NULLのときの最初のアルゴリズムとして、whileループは満たされません。
- curr-> next = NULLの場合の2番目のアルゴリズムとして、whileループは満たされません。
私は最初のアルゴリズムの 'curr'と2番目のアルゴリズム 'curr-> next'はどちらも似ていますが、whileループは終了しましたか? それが似ていない場合、なぜですか?
使用している言語のタグを追加できますか? –
C++が追加されました。 ご連絡ありがとうございます。 – Nahids