30
2つのポインタのみを使用して、単一リンクリストを逆にする方法は?
2つのポインタのみを使用して、単一リンクリストを逆にするロジックが存在するのだろうか。 以下は、すなわち3つのポインタを使用して、単一リンクリストを反転させるために使用されp、q、r: struct node { int data; struct node *link; }; void reverse() { struct node *p = first, *q = NULL, *r; while (p != NULL) { r = q; q = p; p = p->link; q->link = r; } first = q; } リンクされたリストを逆にする他の代替はありますか?時間の複雑さの観点から、単一にリンクされたリストを逆にするための最良のロジックは何でしょうか?