我想要竖着打印一棵二叉树。我知道可以使用哈希表来解决这个问题。但是,我在很多地方都看到说可以使用双向链表来实现。然而,我无法理解如何做到这一点。我也没有在网上找到任何易于理解的材料。有人能帮我使用双向链表方法吗?
示例:
5
4 3
6 7 8 9
这提供了
6
4
5 7 8
3
9
使用哈希映射的解决方案:假设根节点的索引为0,则左侧节点将是-1
,-2
等,右侧节点将是+1
,+2
等。因此,我们可以建立一个以列号为键的哈希表,并将该特定列号作为值具有该列号的所有根节点的列表。然后,我们可以简单地打印哈希表中的条目。
请参见此链接,阅读第一轮技术问题1的评论。
我在许多其他地方也看到了类似的评论。
char,int
类型的map
,将所有字符存入map
中,最后打印出所有出现次数大于1的键值。当然,在C++中你可以使用map
,但任何关联容器都可以。 - user2485710