题目描述

二叉树数据结构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...


blueDolphin
12 声望1 粉丝