#include <bits/stdc++.h>
using namespace std;
const int maxn = 500200, mod = 998244353, inv2 = (mod + 1) / 2;
inline int add(int x, int y) { return x + y - ((x + y >= mod) ? mod : 0); }
inline int mul(int x, int y) { return 1LL * x * y % mod; }
inline int qpow(int x, int y) {
  int ret = 1;
  for (; y; y >>= 1, x = mul(x, x))
    if (y & 1) ret = mul(ret, x);
  return ret;
}
vector<int> G[maxn];
int n, f[maxn], g[maxn], ans = 0;
void dfs(int v, int fa) {
  int &no = g[v], &yes = f[v];
  no = 1;
  for (auto u : G[v])
    if (u != fa) {
      dfs(u, v);
      no = mul(no, mul(inv2, add(1, f[u])));
    }
  yes = add(1 + mod, -no);
  ans = add(ans, yes);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i < n; ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    G[x].push_back(y);
    G[y].push_back(x);
  }
  dfs(1, -1);
  ans = mul(ans, qpow(2, n));
  printf("%d\n", ans);
  return 0;
}
