插入不進去
uj5u.com熱心網友回復:
樓主的代碼只是把p的地址賦值給了q,這樣q還是一個孤零零的節點。并沒有插入到鏈表中如果樓主要插入到鏈表中,需要定義另外一個節點pre,即要插入節點的前一個節點,q->next = p; pre->next = q;
uj5u.com熱心網友回復:
貼原始碼吧,方便除錯~uj5u.com熱心網友回復:
這里不對吧,q=(pp)malloc(sizeof(pp));
uj5u.com熱心網友回復:
插入函式,供參考:struct ListNode *insert(pp head,int x){
pp p,pr,q;
q=(pp)malloc(sizeof(qq));
q->data = x;
pr=head;
p=head->next;
while(p){
if(p->data >= x) {
if(p->data == x) break;
else{
q->next = pr->next;//找到了p,插在p的前面一個節點。
pr->next = q;
break;
}
}
pr = p;
p = p->next;
}
return head;
}
uj5u.com熱心網友回復:
嗯,作弊的方式是把新節點q放在p的后面,然后悄悄交換它倆的datauj5u.com熱心網友回復:
如果插入的點在head之前呢,這個沒有考慮
另外,head一定是有效的嗎?可能是NULL不?所以需要多加一些判斷~
q->next = pr->next;//找到了p,插在p的前面一個節點。
//上面這句可以改一下,改成如下:
//q->next = p; //這樣會比較好理解了~否則后面的注釋容易對你的q->next = pr->next產生誤解~
pr->next = q;
break;
uj5u.com熱心網友回復:
資料結構對單鏈表進行資料排序 http://bbs.csdn.net/topics/392201633轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268864.html
標籤:C語言
上一篇:HEVC中mv的設定
