题目描述
二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求依然符合二叉搜索树的性质,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。
返回转换后的单向链表的头节点。
示例:
输入: [4,2,5,1,3,null,6,0]
输出: [0,null,1,null,2,null,3,null,4,null,5,null,6]
解题思路
二叉排序树:
1、若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 2、若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 3、它的左、右子树也分别为二叉排序树
#### 思路一:使用递归,中序遍历,先左边,再处理,再右边
#### 思路二:借用哨兵,仍然使用递归
#### 思路三:使用迭代+栈
语言累计和技巧
使用了前置节点来降低逻辑的处理难度
哨兵的使用
代码链接
https://github.com/lunaDolphi...
https://github.com/lunaDolphi...
https://github.com/lunaDolphi...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。