
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Find Largest Sum of Path Between Two Nodes in Binary Tree using Python
Suppose we have a binary tree; we have to find the maximum sum of any path between any two nodes.
So, if the input is like
then the output will be 62 as the nodes are [12,13,14,16,7].
To solve this, we will follow these steps −
Define a function utils() . This will take root
-
if root null, then
return 0
l := utils(left of root)
r := utils(right of root)
max_single := maximum of (max of l and r) + value of root) and value of root
max_top := maximum of max_single and l + r + value of root
res := maximum of res and max_top
return max_single
From the main method, do the following −
-
if root is null, then
return 0
res := infinity
utils(root)
return res
Let us see the following implementation to get better understanding −
Example
class TreeNode: def __init__(self, value): self.val = value self.left = None self.right = None class Solution: def solve(self, root): if root is None: return 0 self.res = float("-inf") self.utils(root) return self.res def utils(self, root): if root is None: return 0 l = self.utils(root.left) r = self.utils(root.right) max_single = max(max(l, r) + root.val, root.val) max_top = max(max_single, l + r + root.val) self.res = max(self.res, max_top) return max_single ob = Solution() root = TreeNode(13) root.left = TreeNode(12) root.right = TreeNode(14) root.right.left = TreeNode(16) root.right.right = TreeNode(22) root.right.left.left = TreeNode(4) root.right.left.right = TreeNode(7) print(ob.solve(root))
Input
root = TreeNode(13) root.left = TreeNode(12) root.right = TreeNode(14) root.right.left = TreeNode(16) root.right.right = TreeNode(22) root.right.left.left = TreeNode(4) root.right.left.right = TreeNode(7)
Output
62
Advertisements