2015-12-03 41 views

回答

1

你的問題似乎是

if(rand() % 1 > 0) { 

rand() % 1總是0

更改爲:

if(rand() % 2 > 0) { 

並且在一個錯字:

while(current = !NULL) { 

變化

while(current != NULL) { 

不要忘了重新next節點前一個循環中,使用臨時節點,如:

temp = current; 
    while (current != NULL) { 
    next = current->next; 
    if (rand() % 2 > 0) { 
     temp->next = next; 
     free(current); 
    } else { 
     temp = current; 
    } 
    current = next; 
    } 
+0

「將下一個節點重新連接到前一節點」是什麼意思? – TaiAu

+0

我該怎麼做?我真的堅持:( – TaiAu

+0

編輯(未測試) –