我正尝试在已排序的链接列表中输入新节点。我不知道这段代码有什么问题。将节点插入已排序的双向链表中
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/)。 –