114. 二叉树展开为链表
给定一个二叉树,原地将它展开为一个单链表。
例如,给定二叉树
1 / \ 2 5 / \ \ 3 4 6
将其展开为:
1
2
3
4
5
6
7
8
9
10
11
12 > 1
> \
> 2
> \
> 3
> \
> 4
> \
> 5
> \
> 6
>
思路: 先思考如果只有三个节点应该怎么去做(树最简单的切入方法就是, 考虑三个节点的时候应该怎么做)
- 首先要把左孩子置为
nullptr
- 然后把左孩子挂到链表上
- 右孩子重复上述过程
所以我们可以利用一个变量去记录当前链表的尾部,这样每次挂节点直接指下指针就可以了,具体的思路见代码。(树这种递归结构的数据结构,再写代码之前一定要把处理的细节思考清楚。
1 | class Solution { |