LeetCode maximum binary tree

Love The Way You Lie 2022-03-15 18:52 236阅读 0赞
  1. # Definition for a binary tree node.
  2. class TreeNode(object):
  3. def __init__(self, x):
  4. self.val = x
  5. self.left = None
  6. self.right = None
  7. class Solution(object):
  8. def make_tree(self,root,nums,is_left):
  9. if len(nums)==0:return
  10. max_ind=nums.index(max(nums))
  11. if is_left:
  12. root.left=TreeNode(nums[max_ind])
  13. if len(nums[0:max_ind]) > 0:
  14. self.make_tree(root.left, nums[0:max_ind], True)
  15. if len(nums[max_ind + 1:]) > 0:
  16. self.make_tree(root.left, nums[max_ind + 1:], False)
  17. else:
  18. root.right=TreeNode(nums[max_ind])
  19. if len(nums[0:max_ind]) > 0:
  20. self.make_tree(root.right, nums[0:max_ind], True)
  21. if len(nums[max_ind + 1:]) > 0:
  22. self.make_tree(root.right, nums[max_ind + 1:], False)
  23. def constructMaximumBinaryTree(self, nums):
  24. """
  25. :type nums: List[int]
  26. :rtype: TreeNode
  27. """
  28. root=TreeNode(max(nums))
  29. max_ind=nums.index(max(nums))
  30. self.make_tree(root,nums[0:max_ind],True)
  31. self.make_tree(root,nums[max_ind+1:],False)
  32. return root
  33. nums=[3,2,1,6,0,5]
  34. sl=Solution()
  35. root=sl.constructMaximumBinaryTree(nums)
  36. print root

发表评论

表情:
评论列表 (有 0 条评论,236人围观)

还没有评论,来说两句吧...

相关阅读