#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353, maxn = 5e5 + 79;
void upd(int& a, const int& b) { a = (a + b) % mod; }
int mul(const int& a, const int& b) { return (a * 1ll * b) % (long long)mod; }
vector<vector<int> > dp(maxn, vector<int>(2, 0));
vector<vector<int> > g(maxn);
vector<int> pw2(maxn, 1);
int sum = 0, n;
int dfs(int u, int p = -1) {
  dp[u][0] = 1;
  int e = 0;
  for (int v : g[u]) {
    if (v == p) continue;
    e += 1 + dfs(v, u);
    vector<int> dp2(2, 0);
    upd(dp2[1], mul(dp[u][0], dp[v][0]));
    upd(sum, mul(2, mul(mul(dp[u][0], dp[v][0]), pw2[n - 1 - e])));
    upd(dp2[0], mul(dp[u][0], dp[v][1]));
    upd(dp2[1], mul(dp[u][1], dp[v][0]));
    upd(dp2[1], mul(dp[u][1], dp[v][1]));
    upd(dp2[0], mul(dp[u][0], dp[v][0]));
    upd(dp2[0], mul(dp[u][0], dp[v][1]));
    upd(dp2[1], mul(dp[u][1], dp[v][0]));
    upd(dp2[1], mul(dp[u][1], dp[v][1]));
    dp[u] = dp2;
  }
  return e;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  for (int i = 1; i < maxn; i++) pw2[i] = mul(pw2[i - 1], 2);
  cin >> n;
  for (int i = 0, u, v; i < n - 1; i++) {
    cin >> u >> v;
    g[--u].push_back(--v), g[v].push_back(u);
  }
  dfs(0);
  cout << sum << "\n";
  return 0;
}
