Geeksforgeeks

It's live! The biggest programming festival has begun! Check out Geek Week now!

Error

Given a binary tree and data value of two of its nodes. Find the number of turns needed to reach from one node to another in the given binary tree.

**Example 1:**

Input:Tree = 1 / \ 2 3 / \ / \ 4 5 6 7 / / \ 8 9 10 first node = 5 second node = 10Output:4Explanation:Turns will be at 2, 1, 3, 6.

**Example 2:**

Input:Tree = 1 / \ 2 3 / \ / \ 4 5 6 7 / / \ 8 9 10 first node = 1 second node = 4Output:-1Explanation:No turn is required since they are in a straight line.

**Your Task: **

You don't need to read input or print anything. Complete the function **NumberOFTurns()** which takes root node and data value of 2 nodes as input parameters and returns the number of turns required to navigate between them. If the two nodes are in a straight line, ie- the path does not involve any turns, return -1.

**Expected Time Complexity:** O(N)

**Expected Auxiliary Space: **O(Height of Tree)

**Constraints:**

1 ≤ N ≤ 10^{3}

We are replacing the old Disqus forum with the new Discussions section given below.

Click here to view old Disqus comments.

Click here to view old Disqus comments.

Login to report an issue on this page.

We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?

YesLoading...

Number of Turns in Binary Tree

...