Given a tree of N nodes, the task is to convert the given tree to its Sum Tree(including its own weight) and find the minimum difference between any two node’s weight of the sum tree.
Note: The N nodes of the given tree are given in the form of top to bottom with N-1 line where each line describes two nodes which are connected.
total weight of node 1: 3 (own weight) + (10 + 6 + 5 + 8 + 2 + 7 + 11) (sub-tree node’s weight) = 52
total weight of node 2: 5 (own weight) + (2 + 7 + 11) (sub-tree node’s weight) = 25
total weight of node 3: 8 (own weight) + (0) (sub-tree node’s weight) = 8
total weight of node 4: 10 (own weight) + (0) (sub-tree node’s weight) = 10
total weight of node 5: 2 (own weight) + (0) (sub-tree node’s weight) = 2
total weight of node 6: 6 (own weight) + (5 + 8 + 2 + 7 + 11) (sub-tree node’s weight) = 39
total weight of node 7: 7 (own weight) + (0) (sub-tree node’s weight) = 7
total weight of node 8: 11 (own weight) + (0) (sub-tree node’s weight) = 11
By observing the total weight of each node, Node 4 and 8 have a minimum difference(11-10) = 1
- We will traverse the given tree from below and store the weight of that node plus its sub-tree node’s weight in one array and mark index of each node as visited. So in between if we revisit that node then we don’t have to count the weight of that node again.
- We will sort the array where we have stored the total weight of each node.
- Now find the pairwise difference in the sorted array and whichever pair gave minimum difference print that minimum difference at last.
Below is the implementation of the above approach:
Time Complexity: O(N * Log(N)), where N is total nodes in rooted tree.
- Minimum distance to visit all the nodes of an undirected weighted tree
- Count the nodes of the given tree whose weighted string is a palindrome
- Count the nodes of the tree whose weighted string contains a vowel
- Count of leaf nodes of the tree whose weighted string is a palindrome
- Count the nodes of a tree whose weighted string does not contain any duplicate characters
- Maximize sum of minimum difference of divisors of nodes in N-ary tree
- Maximum weighted edge in path between two nodes in an N-ary tree using binary lifting
- Find the root of the sub-tree whose weighted sum XOR with X is minimum
- Find the root of the sub-tree whose weighted sum is minimum
- Sub-tree with minimum color difference in a 2-coloured tree
- Count the nodes of a tree whose weighted string is an anagram of the given string
- Count the nodes of the tree which make a pangram when concatenated with the sub-tree nodes
- Minimum no. of iterations to pass information to all nodes in the tree
- Query to find the maximum and minimum weight between two nodes in the given tree using LCA.
- Generate Complete Binary Tree in such a way that sum of non-leaf nodes is minimum
- Minimum time required to visit all the special nodes of a Tree
- Construct XOR tree by Given leaf nodes of Perfect Binary Tree
- Difference between sum of even and odd valued nodes in a Binary Tree
- Remove all leaf nodes from a Generic Tree or N-ary Tree
- Minimum and maximum node that lies in the path connecting two nodes in a Binary Tree
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : rutvik_56