#include <bits/stdc++.h>
using namespace std;
const int mo = 998244353;
const int N = 500005;
int n, ans;
int f[N], g[N], P[N], sz[N];
vector<int> e[N];
void dfs(int x, int fa) {
  sz[x] = f[x] = 1;
  for (auto y : e[x])
    if (y != fa) {
      dfs(y, x);
      sz[x] += sz[y];
      g[x] = (2ll * g[x] * (f[y] + g[y]) + 1ll * f[x] * f[y]) % mo;
      f[x] = 1ll * f[x] * (f[y] + 2ll * g[y]) % mo;
    }
  ans = (ans + mo - 1ll * f[x] * P[n - sz[x]] % mo) % mo;
}
int main() {
  scanf("%d", &n);
  for (int i = (int)(1); i <= (int)(n - 1); i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    e[x].push_back(y);
    e[y].push_back(x);
  }
  P[0] = 1;
  for (int i = (int)(1); i <= (int)(n - 1); i++) P[i] = P[i - 1] * 2 % mo;
  ans = 1ll * P[n - 1] * n % mo;
  dfs(1, 0);
  printf("%d", ans * 2 % mo);
}
