למצוא בני דודים בעץ בינרי
יש למצוא האם שני מספרים הם בני דודים בעץ בינרי. אסור שיהיה אבא משותף. חייבים להיות באותה רמה.
- public boolean IsCousins(Node root, int x, int y){
- (Node parentOfX, int depthX) = Depth(null, root, x, 0);
- (Node parentOfY, int depthY) = Depth(null, root, y, 0);
- return depthX == depthY && parentOfX != parentOfY;
- }
- private (Node parent, int depth) Depth(Node parent, Node current, int val, int level) {
- if (current == null) return (null, -1);
- if (root.val == val) return (parent, level);
- return Depth(root, root.left, val, level+1) ?? Depth(root, root.right, val, level+1);
- }