根据数组元素建立二叉树

根据数组元素建立二叉树

建立原则是从上到下,从左到右,也就是先建立根结点,然后是根的左节点,然后是根的右节点(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

Comments are closed.