输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
问题分析
二叉搜索树的中序遍历序列是按照升序排列的,因此,只需要按照中序遍历的顺序,将树中所有的结点连接在一起,就能将二叉搜索树转换成升序的双向链表。
方法一:递归
1 | /** |
复杂度分析:时间复杂度和空间复杂度均为O(n)。其中,n为二叉搜索树中节点的个数。
方法二:迭代
1 | /** |
复杂度分析:时间复杂度和空间复杂度均为O(n)。其中,n为二叉搜索树中节点的个数。
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
二叉搜索树的中序遍历序列是按照升序排列的,因此,只需要按照中序遍历的顺序,将树中所有的结点连接在一起,就能将二叉搜索树转换成升序的双向链表。
1 | /** |
复杂度分析:时间复杂度和空间复杂度均为O(n)。其中,n为二叉搜索树中节点的个数。
1 | /** |
复杂度分析:时间复杂度和空间复杂度均为O(n)。其中,n为二叉搜索树中节点的个数。
微信支付
支付宝