46.Flatten Binary Tree的几种思路.docVIP

  • 1
  • 0
  • 约2.61千字
  • 约 3页
  • 2017-08-16 发布于浙江
  • 举报
46.Flatten Binary Tree的几种思路

Flatten Binary Tree的几种思路 简介   在之前的一些学习中有几个地方碰到将二叉树转化成链表的问题。它们虽然各不相同,但是如果仔细分析它们的具体过程,我们会发现其中有一些规律可以遵循的。 ?   这个问题比较有意思的地方在于有这么一个特性。我们定义的二叉树一般有几种常用的遍历方式。比如前序,中序,后序以及层次遍历。它们的每种遍历方式所经历过的节点就构成了一个序列。如果我们需要将一棵二叉树转换成对应的链表,它们所要构成的链表的顺序基本上就和我们遍历的顺序一致。 ?   对于上述的问题,如果我们针对它们各种不同的情况来进行遍历的话,我们首先能想到的第一个想法就是递归遍历的办法。当然,光一个递归遍历还是不够的。因为我们需要将它们串起来,也就是说要修改它们的指针来使得它们构成一个对应的双向链表。如果没有其他限制的情况下,我们可以考虑用一个队列来将每次遍历访问的元素保存起来。然后再按照队列的顺序将它们一个个的拼接起来。   假设我们定义的树节点元素如下: Java代码?? public?class?TreeNode?{?? ????int?val;?? ????TreeNode?left;?? ????TreeNode?right;?? ????TreeNode(int?x)?{?val?=?x;?}?? }?? ? 前序   前序遍历的递归方法只需要稍微做一点修改就可以达

文档评论(0)

1亿VIP精品文档

相关文档