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!")
 |