リンクリストの最後からN番目のノードを印刷するPythonプログラム
リンクリストの最後から特定のノードを出力する必要がある場合は、メソッド「list_length」および「return_from_end」メソッドが定義されています。 「list_length」は、リンクリストの長さを返します。
「return_from_end」メソッドは、リンクリストの最後からn番目の要素を返すために使用されます。
以下は同じのデモンストレーションです-
例
class Node:def __init __(self、data):self.data =data self.next =Noneclass LinkedList_structure:def __init __(self):self.head =None self.last_node =None def add_vals(self、data): self.last_nodeがNoneの場合:self.head =Node(data)self.last_node =self.head else:self.last_node.next =Node(data)self.last_node =self.last_node.nextdef list_length(my_list):my_len =0 curr =my_list.head while curr:curr =curr.next my_len =my_len + 1 return my_lendef return_from_end(my_list、n):l =list_length(my_list)curr =my_list.head for i in range(l --n):curr =curr.next return curr.datamy_instance =LinkedList_structure()my_list =input('リンクリストの要素を入力してください..')。split()for elem in my_list:my_instance.add_vals(int(elem))n =int( input('nの値を入力してください。'))my_result =return_from_end(my_instance、n)print('最後からn番目の要素は次のとおりです:{}'。format(my_result))出力
リンクリストの要素を入力します。453120874nの値を入力します。2最後からn番目の要素は87です。説明
-
「Node」クラスが作成されます。
-
必要な属性を持つ別の「LinkedList_structure」クラスが作成されます。
-
最初の要素、つまり「head」と「last_node」を「None」に初期化するために使用される「init」関数があります。
-
スタックに値を追加するのに役立つ「add_vals」という名前のメソッドが定義されています。
-
「list_length」という名前のメソッドが定義されています。このメソッドは、リンクリストの長さを決定し、それを出力として返します。
-
「return_from_end」という名前の別のメソッドが定義されています。これは、リンクリストの最後から「n」の値を返すのに役立ちます。
-
「LinkedList_structure」のインスタンスが作成されます。
-
リンクリストに要素が追加されます。
-
要素がコンソールに表示されます。
-
このリンクリストで「return_from_end」メソッドが呼び出されます。
-
出力はコンソールに表示されます。
-
Cプログラムのリンクリストの最後からn番目のノードのプログラム
n個のノードがある場合、タスクはリンクリストの最後からn番目のノードを印刷することです。プログラムは、リスト内のノードの順序を変更してはなりません。代わりに、リンクリストの最後からn番目のノードのみを出力する必要があります。 例 Input -: 10 20 30 40 50 60 N=3 Output -: 40 上記の例では、最初のノードからカウントnノードまでのノードがトラバースされます(10、20、30、40、50、60)。したがって、最後から3番目のノードは40です。 リスト全体をトラバースする代わりに、この効率的なアプローチに従うことができます-
-
PythonでリンクリストのK番目の最後のノードを見つけるプログラム
単一リンクリストがあるとすると、k番目の最後のノード(0インデックス)の値を確認する必要があります。これはシングルパスで解決する必要があります。 したがって、入力がnode =[5,4,6,3,4,7]、k =2のようである場合、最後から2番目の(インデックス3)ノードの値は3であるため、出力は3になります。 これを解決するには、次の手順に従います- klast:=ノード 最後:=ノード 0からkの範囲のiの場合、実行 最後:=最後の次 最後の次はnullではありませんが、実行してください 最後:=最後の次 klast:=klastの次