Как отразить связанный список в переполнении стека

Есть ответ для Java, но мы ищем что-то, что относится к C ++. Этот код работает (вроде), но входит в бесконечный цикл. Любые предложения очень ценятся!

void mirror(ListType & list) {

ListType listMirror = NULL;
Node *p = list;

listMirror = p;
listMirror->next = NULL;
Node *q = listMirror;

while (list->next != NULL){
p = p->next;
listMirror = p;
q = listMirror->next;
p->next;
if (p = q)(list->next = NULL);
}
list->next = listMirror;
}

-1

Решение

void mirror(ListType & list) {

ListType listMirror = NULL;
Node *p = list;

list имеет тип «ListType», а p имеет тип «Node», это вызывает неопределенное поведение (так как оно, очевидно, компилируется) в цикле while.

изменить это

    Node *p = list;

указать на первого члена списка

Node *p = list.firstMemeber()//this is an example, refer to your documentation
0

Другие решения


По вопросам рекламы [email protected]