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