# Write better code: Day 7 - Second largest item in Binary search tree

### Arjun Rajkumar twitter logo github logo Dec 11 '18Updated on Jul 02, 2019・1 min read

This post originally appeared on Arjun Rajkumar's blog. Arjun is a web developer based in Bangalore, India.

--

### Day 7: Question 2

Write a method to find the 2nd largest element in a binary search tree.

A binary search tree is a binary tree in which, for each node, the node's value is greater than all values in the left subtree, and the node's value is less than all values in the right subtree.

-

This problem is from InterviewCake.

DISCUSS (1)

Logic

• The right most item will be the largest.
• The second largest could be one of these:
• If the current node has only one left-subtree, then the second largest could be the right most child of that sub-tree
• Else, second largest is parent
``````def largest(root)
if root.any? && root.right
return largest(root.right)
end

return root.value
end

def second_largest(root)
return largest(root.left) if root.any? && (root.left && !root.right)

return root.value if root.any? && (!root.left && !root.right)

#if both of them are false then go right
return second_largest(root.right)
end
``````
Classic DEV Post from Jun 9 '19

## Explain CI/CD like I'm five.

Remote Ruby on Rails developer for hire.