#include <bits/stdc++.h>
using namespace std;
struct edge {
  int to, nxt, val;
} G[200010];
int tot, last[100010], maxdep = 0;
int n;
long long res = 0LL;
void add(int x, int y, int z) {
  ++tot;
  G[tot].to = y;
  G[tot].val = z;
  G[tot].nxt = last[x];
  last[x] = tot;
}
void dfs(int u, int fa, int dep) {
  if (dep > maxdep) maxdep = dep;
  for (int i = last[u]; i; i = G[i].nxt) {
    int v = G[i].to;
    if (v == fa) continue;
    dfs(v, u, dep + G[i].val);
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i < n; ++i) {
    int u, v, d;
    scanf("%d %d %d", &u, &v, &d);
    add(u, v, d);
    add(v, u, d);
    res += d;
  }
  dfs(1, 0, 0);
  printf("%lld\n", 2 * res - maxdep);
  return 0;
}
