Flatten Tree
题目描述:
给定一棵树的头节点,要求将树变成指定的链表形状。具体的描述和例子可以看leetcode网站
解题思路:
最直接的一种思路是将链表中的节点按照一定的顺序放入栈或者队列中,然后按照要求将其重新连接就行。可以从题目中发现是类似树的先序遍历的样纸,所以在将树中节点放入队列的时候可以根据这个规律来实现。
代码如下:
|
|
解题思路2:
当然对于树的题目我们依旧可以使用递归的想法来实现。我们的想法是利用一个指针pre来保存不断移动的当前的位置,然后不断的改变指针的指向即可。
代码实现
|
|
解题思路3
在可以利用递归的方法的情况下,我们也可以利用非递归的思路来解决这个问题。解决的思路比较难描述,可以画一棵简单树按照代码中的思路就可以知道解法。
代码如下:
|
|