Pythonで単一リンクリストの中間ノードを見つけるプログラム
単一リンクリストノードがあるとすると、中間ノードの値を見つける必要があります。そして、2つの中間ノードがある場合、2番目のノードを返します。これをシングルパスで解決する必要があります。
したがって、入力が[5,9,6,4,8,2,1,4,5,2]の場合、出力は2になります。
これを解決するために、次の手順に従います-
-
p:=ノード
-
d:=0、l:=0
-
ノードがnullでない場合は、実行してください
-
dが2と同じでない場合、
-
node:=ノードの次
-
l:=l + 1、d:=d + 1
-
-
それ以外の場合
-
-
p:=pの次、d:=0
-
lが奇数の場合はpの値を返し、それ以外の場合はpの次の値を返します
-
理解を深めるために、次の実装を見てみましょう
例
class ListNode: def __init__(self, data, next = None): self.val = data self.next = next def make_list(elements): head = ListNode(elements[0]) for element in elements[1:]: ptr = head while ptr.next: ptr = ptr.next ptr.next = ListNode(element) return head class Solution: def solve(self, node): p=node d=0 l=0 while node: if d!=2: node=node.next l+=1 d+=1 else: p=p.next d=0 return p.val if l & 1 else p.next.val ob = Solution() head = make_list([5,9,6,4,8,2,1,4,5,2]) print(ob.solve(head))
入力
Input: [5,9,6,4,8,2,1,4,5,2]
出力
2
-
リスト内の最小数を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal
-
リスト内で最大の数を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、リストの最大の要素を計算する必要があります。 ここでは、組み込み関数を使用して、問題ステートメントの解決策に到達します sort()関数の使用 例 # list list1 = [23,1,32,67,2,34,12] # sorting list1.sort() # printing the last element print("Largest element is:", list1[-1]) 出力 Largest in given array is 67