给定一个未排序的节点阵列的前序遍历,其中节点被定义为:
Node { int id; int parent_id; string label; }
定父节点数组,打印出树
每个节点都有自己独特的ID。 parent_id
在树中标识其父项。问题是如何执行树的前序遍历? (不一定是二叉树)
这是一个面试问题,困扰了我好几天。我能想到的是使用哈希映射map<int,list<node> >
其中关键是parentid。然后我不能再走了。我应该从地图上构建树并执行预先遍历,还是有直接从地图上完成的好方法?那怎么样?任何提示表示赞赏!
是否有任何指定孩子的顺序?您可以在构建地图时标记根节点,然后从根开始以预先顺序遍历该地图。 –