0
struct node* ShuffleMerge(struct node* a, struct node* b) {
struct node* result;
struct node* recur;
if (a==NULL) return(b); // see if either list is empty
else if (b==NULL) return(a);
else {
// it turns out to be convenient to do the recursive call first --
// otherwise a->next and b->next need temporary storage.
recur = ShuffleMerge(a->next, b->next);
result = a; // one node from a
a->next = b; // one from b
return(result);
}
}
代碼不工作,B後無法訪問的元素......ShuffleMerge使用遞歸
我建議你嘗試使用筆和紙來繪製最簡單的a和b的非平凡示例,然後通過代碼工作,隨時寫出每個變量的新值。那裏至少有一個bug。 –