本地环境搭建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
浙公网安备 33010602011771号