You can sign up for it at the bottom of this page.
October 31, 2024
It is practically impossible to teach good programming style to students that have had prior exposure to BASIC. As potential programmers, they are mentally mutilated beyond hope of regeneration.
- E. W. Dijkstra
In the official React documentation, it's recommended that to find out where state
data should live, the following steps be taken:
This is an algorithmic problem-- let's find the lowest common ancestor!
You're given a binary search tree tree1
and two of its child nodes as parameters. Can you write a method lowestCommonAncestor(root: Node, node1: Node, node2: Node)
to identify the lowest common ancestor of the two nodes? The lowest common ancestor is the deepest node that has both of the two nodes as descendants.
In the below example, the lowest common ancestor of node 5
and 8
is 7
.
/*
7
/ \
4 8
/ \
1 5
*/
The method will called in the following manner: lowestCommonAncestor(root, node1, node2);
.
You can assume our standard node definition for the tree vertices:
// Node definition
function Node(val) {
this.val = val;
this.left = this.right = null;
}
# Node definition
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
Bonus: is there a way to find the lowest common ancestor of two nodes if the root wasn't passed as a parameter?
1000
-1000000000
and 1000000000
O(n)
O(1)
Have you seen this question before? We are frequently adding problems and may have updated the order. You can change the day that you're on in the settings panel. As always, you can see the solution and a full step by step explanation at this link.
Love the daily emails? AlgoDaily exists to provide hand-held coding interview coaching and career resources to developers from non-traditional paths. With premium, now on sale, you'll get:
One last thing-- if you liked this email, and found value in it, could you kindly forward it to a friend who might benefit?
Our mission is to make tough technical interviews accessible to all, especially those from non-traditional CS backgrounds. I'd deeply appreciate your help in spreading the word!
Thanks,
Jake
We'll send you 100+ of the most common coding interview questions, once a day with visual explanations. Join over 53,000+ users who are doubling their salaries in 30 minutes a day.