递增顺序查找树

作者: _阿南_ | 来源:发表于2020-03-19 14:48 被阅读0次

    题目:

    给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。
    示例 :
    输入:[5,3,6,2,4,null,8,1,null,null,null,7,9]
           5
          / \
        3    6
       / \    \
      2   4    8
     /        / \ 
    1        7   9
    输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]
     1
      \
       2
        \
         3
          \
           4
            \
             5
              \
               6
                \
                 7
                  \
                   8
                    \
                     9  
    提示:
    给定树中的结点数介于 1 和 100 之间。
    每个结点都有一个从 0 到 1000 范围内的唯一整数值。
    

    题目的理解:

    中序遍历二叉树,获取到的值来创建TreeNode。

    python实现

    class Solution:
        def increasingBST(self, root: TreeNode) -> TreeNode:
            self.result = None
            self.current = None
    
            def traverse(node: TreeNode):
                if node.left is not None:
                    traverse(node.left)
    
                if self.result is None:
                    self.result = TreeNode(node.val)
                    self.current = self.result
                else:
                    self.current.right = TreeNode(node.val)
                    self.current = self.current.right
    
                if node.right is not None:
                    traverse(node.right)
    
            traverse(root)
    
            return self.result
    

    提交

    ok

    // END 多学习多练习,没有难的知识点

    相关文章

      网友评论

        本文标题:递增顺序查找树

        本文链接:https://www.haomeiwen.com/subject/ptklyhtx.html