Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでのリンクリストの長さ


単一リンクリストがあるとすると、その長さを見つける必要があります。リンクリストには、nextとvalのフィールドがあります。

したがって、入力が[2-> 4-> 5-> 7-> 8-> 9-> 3]の場合、出力は7になります。

これを解決するには、次の手順に従います-

  • count:=0
  • ノードがnullでない場合は、
    • count:=count + 1
    • node:=ノードの次
  • 返品数

理解を深めるために、次の実装を見てみましょう-

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):
      count = 0
      while node:
         count +=1
         node=node.next
      return count
ob = Solution()
head = make_list([2,4,5,7,8,9,3])
print(ob.solve(head))

入力

[2,4,5,7,8,9,3]

出力

7

  1. K長の行を省略するPythonプログラム

    Kの長さの行を省略する必要がある場合は、単純な反復と「len」メソッドと「append」メソッドが使用されます。 例 以下は同じもののデモンストレーションです my_list = [[41, 7], [8, 10, 12, 8], [10, 11], [6, 82, 10]] print("The list is :") print(my_list) my_k = 2 print("The value of K is ") print(my_k) my_result = [] for row in my_list: if len(row)

  2. Pythonのリンクリストからmノードの後に​​nノードを削除するプログラム

    開始ノードが「head」で、2つの整数mとnを持つリンクリストが与えられたとします。リストをトラバースして、最初のmノードがリストに保持され、最初のmノードが削除された後の次のnノードなどのいくつかのノードを削除する必要があります。リンクリストの最後に到達するまでこれを実行します。ヘッドノードから開始し、変更されたリンクリストが返されます。 リンクリスト構造は-として与えられます Node    value : <integer>    next : <pointer to next node> したがって、入力が要素=[1、