题目描述
Category:Easy Tree
Given a binary search tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only 1 right child.
题目理解
给定一棵二叉搜索树,重新用中序遍历组织这棵树,最左边的节点是这棵新树的根节点,每个节点都没有左子节点,只有一个右子节点。
解题思路
中序遍历时修改指针
使用prev指针一直指向了构造出来的这个新树的最右下边的节点,在中序遍历过程中把当前节点的左指针给设置为None,然后把当前节点放到新树的右下角,这样类似于一个越来越长的链表的构建过程。
思路借鉴:https://blog.csdn.net/fuxuemingzhu/article/details/82349263
class Solution:
# Runtime: 32ms 91.30% MemoryUsage: 12.9MB 100.00%
def increasingBST1(self, root: TreeNode) -> TreeNode:
dummy = TreeNode(