連結リスト操作の基礎

要素の削除 連結リストの操作において、先頭ノードと他のノードの削除処理は異なります。他のノードは前のノードを介して削除されますが、先頭ノードには前のノードが存在しません。 先頭ノードを削除するには、単にヘッドポインタを次のノードに移動します。しかし、この特別なケースを避けるためにダミーヘッドノードを使用すると、全てのノードで一貫した削除方法が適用 ...

7月24日 21:23 投稿

LeetCodeの連結リスト問題解法:ノード交換、削除、交差検出、循環検出

ノードのペア交換(問題24) 連結リストの隣接ノードを交換する実装例。ダミーノードを使用し、3つのポインタで前後関係を管理します。 class Solution { public: ListNode* swapNodePairs(ListNode* head) { ListNode dummy(0); dummy.next = head; ListNode* current = &dummy; while (current->next && current->next-> ...

7月10日 22:22 投稿

単方向連結リストの設計原理と実装手法

1. 連鎖記憶方式の基本概念 線形リストを物理メモリ上に配置する際、隣接する論理要素が連続したアドレスを持つ必要はない。この配置方式は非順序記憶とも呼ばれ、任意のメモリ領域にデータを分散させ、ポインタによって前後の論理関係を維持する。これにより、要素の追加や削除が配列に比べて効率的に行える一方、インデックスによる直接アクセスは不可能となる。 1.1 基 ...

6月19日 18:41 投稿