【C#】LinkedListの先頭ノードを削除する方法 – RemoveFirst()の使い方
C#のLinkedList(リンクリスト)で先頭にあるノードを削除するには、RemoveFirst() メソッドを使用します。このメソッドは、リストの最初のノードを取り除き、残りのノード同士のリンクを自動的に再接続してくれるため、手動でポインタを操作する必要がありません。
まず、文字列配列をもとに LinkedList を作成します。
string[] employees = {"Peter","Robert","John","Jacob"};
LinkedList<string> list = new LinkedList<string>(employees);
続いて、先頭の要素を削除するために RemoveFirst() メソッドを呼び出します。
list.RemoveFirst();
それでは、実際の動作がわかる完全なサンプルコードを見てみましょう。
サンプルコード
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
string[] employees = {"Peter","Robert","John","Jacob"};
LinkedList<string> list = new LinkedList<string>(employees);
// 削除前のリストを表示
foreach (var emp in list) {
Console.WriteLine(emp);
}
// 先頭ノードを削除
list.RemoveFirst();
Console.WriteLine("先頭ノード削除後のLinkedList...");
foreach (var emp in list) {
Console.WriteLine(emp);
}
}
}
実行結果
Peter Robert John Jacob 先頭ノード削除後のLinkedList... Robert John Jacob
補足ポイント
RemoveFirst() メソッドは計算量 O(1) で動作するため、リストのサイズに関係なく高速に処理できます。ただし、空の LinkedList に対して呼び出すと InvalidOperationException がスローされる点には注意が必要です。安全に扱うには、実行前に Count プロパティで要素が存在するかどうかを確認しておくことをおすすめします。
-
C言語で連結リストの末尾からn番目のノードを取得するプログラム
n個のノードからなる連結リストが与えられたとき、その末尾からn番目のノードを出力するのが本記事の目的です。プログラムはリスト内のノードの並び順を変更してはならず、あくまで末尾から数えてn番目に位置するノードの値を表示するだけでなければなりません。具体例入力 -: 10 20 30 40 50 60 N = 3 出力 -: 40上記の例では、先頭ノードから順に「count − n」個目までのノード(10, 20, 30, 40, 50, 60)を走査し、末尾から3番目のノードとして 40 が得られます。効率的なアプローチリスト全体を最後まで走査しなくても、以下の手順で目的のノードを見つけられ
-
【Python】双方向リンクリストの先頭からノードを削除する方法
双方向リンクリスト(二重連結リスト)の先頭からノードを削除するには、まず「Node」クラスを作成する必要があります。このクラスには、ノードが保持するデータ(data)、リンクリスト内の次のノードへの参照(next)、前のノードへの参照(prev)という3つの属性を定義します。 以下に、具体的な実装例を示します。 サンプルコード class Node: def __init__(self, my_data): self.prev = None self.data = my_data self.next = None class doubl