我認爲這應該工作正常...我不知道它有什麼問題嗎?這是我的代碼片段。如果給定的整數列表不是按升序排列,則返回1,如果按升序排列則返回1。鏈接列表:如何在C中進行分揀機檢查?
struct Node{
int data;
Node *pNext;
};
int isItSorted(Node *pHead){
while(pHead != NULL){
if(pHead->data > pHead->pNext->data)
return 0;
else
return 1;
pHead = pHead->pNext;
}
return 1;
}
您的代碼會遇到未定義的行爲,因爲您在取消引用前不驗證'pHead-> pNext!= NULL'。這可能是你的問題的原因。 – Dai
另外,請發佈創建列表的代碼 - 可能您沒有正確初始化字段(例如,在適當時將pNext'明確設置爲NULL)。 – Dai
您的代碼永遠不會執行循環的多次迭代,因爲循環體中存在無條件的'return'。 –