當我遍歷鏈表時,我對程序的行爲感到困惑。爲什麼鏈接列表函數在值升序時崩潰?
我正在寫一個應該檢查是否整數鏈表按升序排列,返回1,如果是,否則爲0的功能。這是我到目前爲止:
int isasc(NodePtr top){
NodePtr curr=top;
if(top=NULL) return 0;
while(curr!=NULL){
if(curr->num > curr->next->num){
return 0;
}
curr=curr->next;
}
return 1 ;
}
它的工作原理當列表不是升序,但崩潰時,它是。你有什麼想法出了什麼問題?
你怎麼知道'curr-> next'不是'NULL'? – 2012-07-07 17:58:43
一個理論問題:是一個空的列表升序還是降序?下一個問題:爲什麼要在進入循環之前需要NULL測試?爲什麼調用者會用空列表調用這個函數? – wildplasser 2012-07-07 18:40:36