-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHeight_of_a_Tree.txt
79 lines (60 loc) · 1.88 KB
/
Height_of_a_Tree.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Height Of Tree
Send Feedback
For a given Binary Tree of integers, find and return the height of the tree.
Example:
10
/ \
20 30
/ \
40 50
Height of the given tree is 3.
Height is defined as the total number of nodes along the longest path from the root to any of the leaf node.
Input Format:
The first and the only line of input will contain the node data, all separated by a single space. Since -1 is used as an indication whether the left or right node data exist for root, it will not be a part of the node data.
Output Format:
The first and the only line of output prints the height of the given binary tree.
Note:
You are not required to print anything explicitly. It has already been taken care of.
Constraints:
0 <= N <= 10^5
Where N is the total number of nodes in the binary tree.
Time Limit: 1 sec
Sample Input 1:
10 20 30 40 50 -1 -1 -1 -1 -1 -1
Sample Output 1:
3
Sample Input 2:
3 -1 -1
Sample Output 2:
1
/*
Following is the structure used to represent the Binary Tree Node
class BinaryTreeNode<T> {
T data;
BinaryTreeNode<T> left;
BinaryTreeNode<T> right;
public BinaryTreeNode(T data) {
this.data = data;
this.left = null;
this.right = null;
}
}
*/
public class Solution {
public static int height(BinaryTreeNode<Integer> root) {
//Your code goes here
if (root == null)
return 0;
else
{
/* compute the depth of each subtree */
int lDepth = height(root.left);
int rDepth = height(root.right);
/* use the larger one */
if (lDepth > rDepth)
return (lDepth + 1);
else
return (rDepth + 1);
}
}
}