树的转换,一道新题,部分递归的条件判断不是很清晰,WA了一次。


# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def bstFromPreorder(self, preorder):
        """
        :type preorder: List[int]
        :rtype: TreeNode
        """
        if len(preorder) == 0:
            return None

        root = TreeNode(preorder[0])
        m = False
        for idx, v in enumerate(preorder[1:]):
            if v > preorder[0]:
                root.left = self.bstFromPreorder(preorder[1:idx+1])
                root.right = self.bstFromPreorder(preorder[idx+1:])
                m = True
                break

        if m == False:
            root.left = self.bstFromPreorder(preorder[1:])

        
        return root

相关文章:

  • 2022-12-23
  • 2021-10-08
  • 2021-05-06
  • 2021-10-30
  • 2021-10-12
  • 2021-10-19
  • 2021-11-17
猜你喜欢
  • 2021-09-08
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
  • 2022-03-04
相关资源
相似解决方案