#include <bits/stdc++.h>
using namespace std;
const int N = 500005, P = 998244353, INV2 = (P + 1) / 2;
using ll = long long;
int n;
vector<int> v[N];
ll f[N];
ll qpow(ll a, ll b) {
  ll ret = 1;
  while (b) {
    if (b & 1) ret = ret * a % P;
    a = a * a % P;
    b >>= 1;
  }
  return ret;
}
ll ans = 0;
void dfs(int pos, int fa) {
  f[pos] = 1;
  for (auto &i : v[pos]) {
    if (i == fa) continue;
    dfs(i, pos);
    f[pos] = f[pos] * (1 - (1 - f[i] + P) % P * INV2 % P + P) % P;
  }
  f[pos] = (1 - f[pos] + P) % P;
  ans = (ans + f[pos]) % P;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  int t1, t2;
  for (int i = 1; i < n; i++)
    cin >> t1 >> t2, v[t1].push_back(t2), v[t2].push_back(t1);
  dfs(1, 0);
  cout << ans * qpow(2, n) % P << endl;
  return 0;
}
