単独リンクリストを逆にします。
例:
入力: 1-> 2-> 3-> 4-> 5-> NULL 出力: 5-> 4-> 3-> 2-> 1-> NULL
問題解決のアイデア:
常にリストの完全なトラバーサルまで、リンク間の方向を変え、隣接する3つの要素に3つのポインタまで、リストの先頭から
実装コード:
struct ListNode* reverseList(struct ListNode* head){
struct ListNode* node = head;
struct ListNode* cur = head;
struct ListNode* pre = NULL;
while(cur) {
cur = cur->next;
node->next = pre;
pre = node;
node = cur;
}
return pre;
}
結果: