我正嘗試在已排序的鏈接列表中輸入新節點。我不知道這段代碼有什麼問題。將節點插入已排序的雙向鏈表中
Node* SortedInsert(Node *head,int data)
{
struct Node *temp=head,*p=NULL;
struct Node *newNode=(struct Node*)malloc(sizeof(struct Node));
newNode->data=data;
newNode->next=NULL;
newNode->prev=NULL;
if(!head){
return newNode;
}
while((data>=(temp->data)) && temp!=NULL){
p=temp;
temp=temp->next;
}
if(temp==NULL){
p->next=newNode;
newNode->prev=p;
return head;
}
if(p==NULL){
head->prev=newNode;
newNode->next=head;
return newNode;
}
p->next=newNode;
newNode->prev=p;
newNode->next=temp;
temp->prev=newNode;
return head;
}
女士,將描述該問題是你的輸出/行爲什麼會有所幫助你的程序 – Bob
添加註釋會幫助你和他人理解代碼。 – kaylum
歡迎來到Stack Overflow。請儘快閱讀[關於]頁面。請注意,代碼的一個問題是它不是MCVE([如何創建最小,完整和可驗證的示例?](http://stackoverflow.com/help/mcve))。我們無法編譯代碼,因爲它不完整,而且您沒有描述您看到的錯誤,也沒有解釋爲什麼您不能使用調試器,也沒有添加診斷打印以幫助您查看發生了什麼問題,也不會在['valgrind']下運行(http://valgrind.org/)。 –