PT07Z  Longest path in a tree
You are given an unweighted, undirected tree. Write a program to output the length of the longest path (from one node to another) in that tree. The length of a path in this case is number of edges we traverse from source to destination.
Input
The first line of the input file contains one integer N  number of nodes in the tree (0 < N <= 10000). Next N1 lines contain N1 edges of that tree  Each line contains a pair (u, v) means there is an edge between node u and node v (1 <= u, v <= N).
Output
Print the length of the longest path on one line.
Example
Input: 3 1 2 2 3 Output: 2
hide comments
jyotiradityafc:
20180815 18:07:56
@suvro_coder it is because n = 6, hence edges should be 5 but you provided 6 edges. Put n = 7 and you will get your answer. 

soumi_1987:
20180804 10:37:08
For Java use BufferedReader for I/O rather than Scanner. 

suvro_coder:
20180720 11:00:53
Weak Test Cases:


markomafko972:
20180719 17:44:37
Try CLCKBAIT after this! 

vivek_dwivedi:
20180706 05:52:41
those who are doing it by finding it longest and second longest .! how are you guys are substracting extra value that you have counted ! (considering your dfs does not start from any root)! 

ktcoder:
20180622 11:39:54
It just requires single dfs.


dikshit_30:
20180619 18:31:02
Logic: Use two bfs. The first to find the farthest node from a particular node. That will be the leaf node. Again applying bfs on this will give you the maximum distance. 

shivamgarg1901:
20180525 11:00:13
If your approach is correct you not need to worry about the root of the tree.


yaswanth desu:
20180410 04:45:17
If any one having doubt regarding the root means, consider the below example


saiyaman_098:
20180409 20:48:03
What's the bfs+dp approach? 
Added by:  ThanhVy Hua 
Date:  20070328 
Time limit:  0.5s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ERL JSRHINO NODEJS PERL6 VB.NET 
Resource:  Coauthor Amber 