【題目敘述】https://cses.fi/problemset/task/1131/
#include <iostream>
#include <vector>
using namespace std;
int n, a, b, mx[200005], idx[200005];
vector <int> v[200005];
void dfs(int x, int pre){
idx[x] = x;
mx[x] = 0;
for (auto i:v[x]){
if (i == pre) continue;
dfs(i, x);
if (mx[i]+1 > mx[x]){
mx[x] = mx[i]+1;
idx[x] = idx[i];
}
}
}
int main() {
cin >> n;
for (int i = 1; i < n; i++){
cin >> a >> b;
v[a].push_back(b);
v[b].push_back(a);
}
dfs(1, 0);
int root = idx[1];
dfs(root, 0);
cout << mx[root] << "\n";
}