23 lines
500 B
Python
23 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!")
|