whole_arrang.py 1.3 KB

123456789101112131415161718192021222324252627282930
  1. from typing import List
  2. from utils import Bnode, Btree
  3. def permute(nums: List[int]) -> List[List[int]]:
  4. node_list = []
  5. for i in range(len(List)):
  6. node = Bnode(List[i], None, None)
  7. node_list.append(node)
  8. if len(node_list) > 0:
  9. for i in range(int(len(List)/2) - 1):
  10. def array_to_bitree(array):
  11. # 判断arr是否为空
  12. if len(array) == 0:
  13. return BiTNode(array[0])
  14. mid = len(array) // 2 # 有序数组的中间元素的下标
  15. # print(mid)
  16. # start=0 # 数组第一个元素的下标
  17. # end=-1 # 数组最后一个元素的下标
  18. if len(array) > 0:
  19. # 将中间元素作为二叉树的根
  20. root = BiTNode(array[mid])
  21. # 如果左边的元素个数不为零,则递归调用函数,生成左子树
  22. if len(array[:mid]) > 0:
  23. root.left_child = arrayToBiTree(array[:mid])
  24. # 如果右边的元素个数不为零,则递归调用函数,生成左子树
  25. if len(array[mid + 1:]) > 0:
  26. root.right_child = arrayToBiTree(array[mid + 1:])
  27. return root