将二进制搜索树转换为双向链接列表。
这种转换的现实应用或重要性是什么?
答案 0 :(得分:2)
可能,面试官试图看看你是否理解BST和链表是什么,如果你理解如果你按顺序遍历BST,你会得到一个项目列表。本练习可以很好地测试您对BST遍历和链表构造的理解。
从BST构建链接列表确实有实际用途。例如,如果您有BST并且想要将其存储到磁盘或通过网络发送,则更容易存储或发送为有序的节点列表。所以你必须从BST创建有序列表。在像C这样没有动态列表结构的语言(如C ++向量或C#List<T>
或Java ArrayList
)中,链表是任意构建的工具。大小的清单。
想想看,你可以就地做到这一点。也就是说,除了递归堆栈之外,您不需要任何额外的内存。如果您在内存受限的环境(如嵌入式系统)中使用非常大的树,那将非常有用。
所以,是的,这种技术有现实世界的用途。