git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			1,015 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1,015 B
		
	
	
	
		
			Python
		
	
	
	
	
	
class Node(object):
 | 
						|
    def __init__(self, value, children=[]):
 | 
						|
        self.value = value
 | 
						|
        self.children = children
 | 
						|
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Solution
 | 
						|
################################################################################
 | 
						|
def trip_time(node):
 | 
						|
    s = []
 | 
						|
    result = 0
 | 
						|
    s.append((node.value, node))
 | 
						|
    while s:
 | 
						|
        p, node = s.pop()
 | 
						|
        if not node.children:
 | 
						|
            result = max(result, p)
 | 
						|
        for x in node.children:
 | 
						|
            s.append((p + x.value, x))
 | 
						|
    return result
 | 
						|
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Tests
 | 
						|
################################################################################
 | 
						|
tree = Node(
 | 
						|
    0,
 | 
						|
    children=[
 | 
						|
        Node(5, children=[Node(6)]),
 | 
						|
        Node(2, children=[
 | 
						|
            Node(6),
 | 
						|
            Node(10),
 | 
						|
        ]),
 | 
						|
        Node(3, children=[Node(2, children=[Node(11)])]),
 | 
						|
    ])
 | 
						|
 | 
						|
assert trip_time(tree) == 16
 | 
						|
print("Tests pass!")
 |