Pythonのリンクリストで連続ノードの絶対差が1であるかどうかを確認します
各ノードに整数値が含まれる単一リンクリストがあるとします。 2つの連続するノード間の絶対差が1であるかどうかを確認する必要があります。
したがって、入力がstart_node-> 5-> 6-> 7-> 8-> 7-> 6-> 5-> 4の場合、出力はTrueになります。
これを解決するには、次の手順に従います-
- temp:=start_node
- tempがnullでない場合は、
- temp.linkがnullと同じ場合、
- ループから抜け出す
- if |(temp)の値-(temp.link)の値| 1と同じではない場合、
- Falseを返す
- temp:=temp.link
- temp.linkがnullと同じ場合、
- Trueを返す
例
理解を深めるために、次の実装を見てみましょう-
import math class link_node: def __init__(self, value): self.value = value self.link = None def create_node(value): temp = link_node(value) temp.value = value temp.link = None return temp def make_list(elements): head = link_node(elements[0]) for element in elements[1:]: ptr = head while ptr.link: ptr = ptr.link ptr.next = link_node(element) return head def solve(start_node): temp = start_node while (temp): if (temp.link == None): break if (abs((temp.value) - (temp.link.value)) != 1) : return False temp = temp.link return True start_node = make_list([5, 6, 7, 8, 7, 6, 5, 4]) print(solve(start_node))
入力
[5, 6, 7, 8, 7, 6, 5, 4]
出力
True
-
Python –リスト内の連続した部門
リスト内の連続する除算を見つける必要がある場合、リストの要素を反復処理し、「/」演算子を使用して結果を判別するメソッドが定義されます。 以下は同じのデモンストレーションです- 例 def consec_division(my_list): my_result = my_list[0] for idx in range(1, len(my_list)): my_result /= my_list[idx] return my_result my_list = [2200
-
Pythonのリンクリストからmノードの後にnノードを削除するプログラム
開始ノードが「head」で、2つの整数mとnを持つリンクリストが与えられたとします。リストをトラバースして、最初のmノードがリストに保持され、最初のmノードが削除された後の次のnノードなどのいくつかのノードを削除する必要があります。リンクリストの最後に到達するまでこれを実行します。ヘッドノードから開始し、変更されたリンクリストが返されます。 リンクリスト構造は-として与えられます Node value : <integer> next : <pointer to next node> したがって、入力が要素=[1、