#P2017. 树的最小后序遍历序列

树的最小后序遍历序列

问题背景

本题中,虽然给出的树不一定是一棵二叉树。但是我们可以简单地将 后序遍历 理解为:

  • 对于每一个节点 uu,先遍历完以节点 uu 为根的子树中的所有其它节点,在访问节点 uu。

题目描述

给你一个包含 nn 个节点的有根树。树上节点编号从 11 到 nn。根节点编号为 11。

输出这棵树的字典序最小的后序遍历序列。

输入格式

第一行,一个整数 n(1≤n≤105)n(1 \le n \le 10^5)。

接下来 n−1n-1 行,每行包含两个整数 uiu_i 和 viv_i,表示树上一条边连接的两个端点(1≤ui,vi≤n1 \le u_i, v_i \le n,ui≠viu_i \neq v_i)。

输出格式

输出共一行,包含 nn 个整数,以空格分隔,表示这棵树的字典序最小的后序遍历序列。

样例

5
1 2
1 3
4 3
5 2
4 3 5 2 1
8
1 4
1 6
2 3
3 5
4 7
4 8
6 5
2 3 5 6 7 8 4 1

说明/提示

数据规模与约定

  • 对于 20%20\% 的数据,n≤10n \le 10;
  • 对于 40%40\% 的数据,n≤1000n \le 1000;
  • 对于 100%100\% 的数据,1≤n≤1051 \le n \le 10^5。数据保证这是一棵树。