鍊錶節點定義:
struct listhao
;listhao* reverselist(listhao* first);
現要實現輸入乙個雙向煉表頭指標,反轉鍊錶,並返回反轉後的頭指標。鍊錶節點如下圖,關鍵**如下:
listhao* reverselist(listhao* head)
//assume that this list is not loop.
listhao *pnode = head, *ppre = nullptr;
while (pnode != nullptr)
return ppre;
}
測試**:
void main()
cout << "backward output:" << endl;
cout << list->element << endl;
while (list->prev != nullptr)
listhao* result = reverselist(list);
cout << "forward output after reverse:" << endl;
cout << result->element << endl;
while (result->next != nullptr)
system("pause");
}
雙向鍊錶 3 反轉雙向鍊錶
雙向鍊錶的反轉過程,可以參考下面的例圖。a 原始雙向鍊錶 b 反轉後的雙向鍊錶 下面是乙個用於反轉雙向鍊錶的簡單方法。所需要做的事情就是交換每個節點的前向指標和後向指標,然後調整鍊錶的頭指標和尾指標。include struct node 對鍊錶進行反轉 void reverse node head...
反轉單向和雙向鍊錶
package class 03 反轉單向和雙向鍊錶 題目 分別實現反轉單向鍊錶和反轉雙向鍊錶的函式。要求 如果鍊錶長度為n,時間複雜度要求為o n 額外空間 複雜度要求為o 1 public class code 07 reverselist public static node reversel...
反轉單向和雙向鍊錶
package practice 反轉單向和雙向鍊錶 題目 分別實現反轉單向鍊錶和反轉雙向鍊錶的函式 要求 如果鍊錶長度為n,時間複雜度要求為o n 額外空間複雜度要求為o 1 author colin.chen public class revisenode public static node ...