herrDeng網內搜尋

自訂搜尋

Ads

2024年6月26日 星期三

Python C++ InOrder與Greedy解Leetcode 1382 Balance a Binary Search Tree


Python C++ InOrder與Greedy解Leetcode 1382  Balance a Binary Search Tree
使用中序/逆中序走訪建立按升序/降序排序的 int 陣列。
貪婪演算法(分而治之)建構平衡的 BST。
Python code請進
-----
Use inorder/reverse-inorder transverals to create a sorted int array in increasing/decreasing order.
Greedy method (divide & conquer) builds a balanced BST.
  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution:
  8. def balanceBST(self, root: TreeNode) -> TreeNode:
  9. arr=[]
  10. def inorder(root):
  11. if root==None: return
  12. inorder(root.left)
  13. arr.append(root.val)
  14. inorder(root.right)
  15. def BST(l, r):
  16. if l>r: return None
  17. m=(l+r)//2
  18. left=BST(l, m-1)
  19. right=BST(m+1, r)
  20. return TreeNode(arr[m], left, right)
  21. inorder(root)
  22. return BST(0, len(arr)-1)
  23.  

沒有留言:

Related Posts Plugin for WordPress, Blogger...

熱門文章