123456789101112131415161718192021222324252627282930 |
- from typing import List
- from utils import Bnode, Btree
- def permute(nums: List[int]) -> List[List[int]]:
- node_list = []
- for i in range(len(List)):
- node = Bnode(List[i], None, None)
- node_list.append(node)
- if len(node_list) > 0:
- for i in range(int(len(List)/2) - 1):
- def array_to_bitree(array):
- # 判断arr是否为空
- if len(array) == 0:
- return BiTNode(array[0])
- mid = len(array) // 2 # 有序数组的中间元素的下标
- # print(mid)
- # start=0 # 数组第一个元素的下标
- # end=-1 # 数组最后一个元素的下标
- if len(array) > 0:
- # 将中间元素作为二叉树的根
- root = BiTNode(array[mid])
- # 如果左边的元素个数不为零,则递归调用函数,生成左子树
- if len(array[:mid]) > 0:
- root.left_child = arrayToBiTree(array[:mid])
- # 如果右边的元素个数不为零,则递归调用函数,生成左子树
- if len(array[mid + 1:]) > 0:
- root.right_child = arrayToBiTree(array[mid + 1:])
- return root
|