根据数组元素建立二叉树
建立原则是从上到下,从左到右,也就是先建立根结点,然后是根的左节点,然后是根的右节点(PS:这里写的是左节点,而没写左子树,也就是只有一个节点并不包含该节点下面的节点),如:
[1,0,0,null,3] 1 / \ 0 0 \ 3
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def createTree(arr:list[int])->TreeNode:
i=0
root=TreeNode(arr[i])
TreeNodeQueue=[root]
i+=1
while i<len(arr):
Node=TreeNodeQueue.pop(0)
if arr[i] is not None:
Node.left=TreeNode(arr[i])
TreeNodeQueue.append(Node.left)
i+=1
if i>=len(arr):
break
if arr[i] is not None:
Node.right=TreeNode(arr[i])
TreeNodeQueue.append(Node.right)
i+=1
return root