展平数据:当给定节点的二叉树时,如何编写返回节点链表的递归函数?(树可以修改)
在这个问题中,扁平化树是什么意思?我们是否需要将二叉树的所有元素及其左右指针保存在一个列表中,或者还有另一个我没有得到的问题?
其次(树可以修改)他们是否意味着乐趣应该能够处理树的任何修改以及构建?
展平数据:当给定节点的二叉树时,如何编写返回节点链表的递归函数?(树可以修改)
在这个问题中,扁平化树是什么意思?我们是否需要将二叉树的所有元素及其左右指针保存在一个列表中,或者还有另一个我没有得到的问题?
其次(树可以修改)他们是否意味着乐趣应该能够处理树的任何修改以及构建?
假设你有一个像这样的二叉树:
a
/ \
b c
/ \ \
0 0 d
/ \
0 0
其中a
,b
等是节点并且0
为零。树有几种可能的递归遍历:
预订,在孩子之前拜访父母:a b c d
按顺序,在孩子之间拜访父母:b a c d
订购后,在孩子之后拜访父母:b d c a
树的“扁平化”仅仅是遍历产生的列表;您的数据结构不再是嵌套的,而是扁平的。要展平一棵树,请从一个空的链表开始。然后按照您选择的顺序遍历树,将每个访问过的节点附加到链表中。我认为“可以修改树”意味着您的函数可以在构建列表时更改树,如果您认为有必要这样做的话。
扁平化只是意味着他们希望节点按线性顺序排列。树有几种常见的顺序:前序、中序或后序,其中父节点分别出现在其子节点之前、中间或之后。