给定一个未排序的节点数组,其中节点定义为:
Node { int id;
int parent_id;
string label;
}
每个节点都有自己唯一的 id。parent_id
在树中识别其父项。问题是如何对树进行前序遍历?(不一定是二叉树)
这是一个困扰我好几天的面试题。我能想到的是使用一个哈希映射map<int,list<node> >
,其中 key 是 parentid。那我就不能更进一步了。我应该从地图构建树并进行前序遍历,还是有直接从地图中进行的好方法?那怎么办?任何提示表示赞赏!