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

Pythonでツリーのすべての要素の合計を見つけるプログラム


いくつかの値を含む二分木があるとすると、ツリー内のすべての値の合計を見つける必要があります。

したがって、入力が次のような場合

Pythonでツリーのすべての要素の合計を見つけるプログラム

その場合、出力は14になります

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

  • 関数recurse()を定義します。これはノードを取ります

  • val:=ノードの値

  • ノードの左側がnullでない場合、

    • val:=val + recurse(ノードの左側)

  • ノードの権利がnullでない場合、

    • val:=val + recurse(ノードの右側)

  • 戻り値

  • メインの方法から、次のようにします-

  • ルートがゼロ以外の場合、

    • 0を返す

  • recurse(root)を返す

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

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.val = data
      self.left = left
      self.right = right
class Solution:
   def recurse(self, node):
      val = node.val
      if node.left:
         val += self.recurse(node.left)
      if node.right:
         val += self.recurse(node.right)
      return val
   def solve(self, root):
      if not root:
         return 0
      return self.recurse(root)
ob = Solution()
root = TreeNode(2)
root.right = TreeNode(4)
root.right.left = TreeNode(3)
root.right.right = TreeNode(5)
print(ob.solve(root))

入力

root = TreeNode(2)
root.right = TreeNode(4)
root.right.left = TreeNode(3)
root.right.right = TreeNode(5)

出力

14

  1. リストの累積合計を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、累積合計でリストを作成する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # cumulative sum def Cumulative(l):    new = []    cumsum = 0    for element in l:       cumsum += element       new.append(cumsum) &

  2. リスト内の要素の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力としてリストが与えられた場合、与えられたリストの合計を計算する必要があります。 ここでは、考慮すべき2つのアプローチがあります。つまり、組み込み関数を使用する方法と、ブルートフォースアプローチを使用する方法です。 アプローチ1-組み込み関数の使用 例 # main arr = [1,2,3,4,5] ans = sum(arr) print ('Sum of the array is ',ans) 出力 15 すべての変数と関数はグローバルスコープで宣言されて