SUM ROOT TO LEAF NUMBERS

By: Saurav

2018-01-18 03:10:00 UTC

Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.

An example is the root-to-leaf path 1->2->3 which represents the number 123.

Find the total sum of all root-to-leaf numbers % 1003.

Example :

1
/ \
2 3
The root-to-leaf path 1->2 represents the number 12.
The root-to-leaf path 1->3 represents the number 13.

Return the sum = (12 + 13) % 1003 = 25 % 1003 = 25.

InterviewBit

This is a similar problem as the last few problems.

Algo:

Thinking recursively and adding the current_sum * 10 to the current node for each subtree and finally adding all the subtree result is the right approach.

Lets see it in action:

def sumNumbers(a)
        return traverse(a,0) % 1003
    end
    
    def traverse(a,sum)
        return 0 if !a
        
        return (a.data + sum*10) if !a.left and !a.right
        
        return traverse(a.left, sum*10+a.data) + traverse(a.right, sum*10+a.data)
        
    end

Looks good to me.


Let me know what you think!
twitter: sprakash24oct
linkedin

Owned & Maintained by Saurav Prakash

If you like what you see, you can help me cover server costs or buy me a cup of coffee though donation :)