Answer to Question #258504 in Python for sindhu

Question #258504

Write a PYTHON program to find the path with the largest sum. Tree can be in N level and draw the binary tree and accept a perfect and imperfect binary tree as an option from the user.



Enter the level of binary tree:4

This code generates binary tree with minimum 4 levels

The maximum sum is 341

The maximum sum path is 65 89 83 53 51




Enter the level of binary tree:2

This code generates binary tree with minimum 2 levels

The maximum sum is 341

The maximum sum path is 65 89 83 53 51  

----Both the sum values are same..but i want based on levels


1
Expert's answer
2021-10-29T15:20:32-0400
def printPath(root, sum):
  if sum == 0:
    return True
  if root is None:
    return False
  left = printPath(root.left, sum - root.data)
  right = printPath(root.right, sum - root.data)
  if left or right:
    print(root.data, end=' ')
 
  return left or right





def getRootToLeafSum(root):
 
  if root is None:
    return 0
 
  left = getRootToLeafSum(root.left)
  right = getRootToLeafSum(root.right)
  return (left if left > right else right) + root.data
 



def findMaxSumPath(root):
  sum = getRootToLeafSum(root)
  print("The maximum sum is:", sum)
  print("The maximum sum path is :", end=' ')
  printPath(root, sum)
 
def Rnode():
  height=int(input("Enter the level of Binary tree:"))
  p=int(input("Perfect=1,imperfect=0:"))
  try:
    B=tree(height,is_perfect=p)
    B=list(B)[0]
    print(B)
    findMaxSumPath(B)
  except:
    print("level of Binary value between 0-9")
 
def print_tree(nodes):
  from binarytree import build
  b_tree = build(nodes)
  print(b_tree)



# This main method of given program to call Rnode() function


if __name__ == '__main__':
  Rnode()

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog