22 lines
		
	
	
	
		
			500 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			500 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from collections import deque
 | |
| from node import Node, tree
 | |
| 
 | |
| def find_largest(node):
 | |
|     while node.right:
 | |
|         node = node.right
 | |
|     return node.value
 | |
| 
 | |
| def find_second_largest(node):
 | |
|     # parent of the rightmost, when rightmost is leaf
 | |
|     # max(rightmost.left)
 | |
|     prev = None
 | |
|     while node.right:
 | |
|         prev = node
 | |
|         node = node.right
 | |
|     if node.left:
 | |
|         return find_largest(node.left)
 | |
|     else:
 | |
|         return prev.value
 | |
| 
 | |
| assert find_second_largest(tree) == 72
 | |
| print("Success!")
 |