本地环境搭建leetcode,二叉树相关的测试环境

1、如何根据题目构建指定的二叉树?

方案1【不要使用】

def creatBTree(data, index):
    "存在bug,请不要使用"
    pNode = None
    if index < len(data):
        if data[index] == None:
            return
        pNode = TreeNode(data[index])
        pNode.left = creatBTree(data, 2 * index + 1)
        pNode.right = creatBTree(data, 2 * index + 2)
    return pNode


方案二:

def makeTree(l) -> TreeNode:
    """ 由输入列表生成树,返回根节点 """
    q = []
    if not l:
        return
    root = TreeNode(val=l.pop(0))
    q.append(root)
    while q:
        t = q.pop(0)
        if l:
            if l[0] != 'null':
                t.left = TreeNode(val=l.pop(0))
                q.append(t.left)
            else:
                l.pop(0)
        if l:
            if l[0] != 'null':
                t.right = TreeNode(val=l.pop(0))
                q.append(t.right)
            else:
                l.pop(0)
    return root

posted @ 2022-03-20 21:36  bH1pJ  阅读(66)  评论(0编辑  收藏  举报