Python二叉树长度

Python二叉树长度,python,algorithm,tree,binary-tree,Python,Algorithm,Tree,Binary Tree,因此,我需要找到一个二叉树的路径,其中包含最唯一的数字,并返回给定的最大长度tree=T和T.x分别返回节点的int和T.r和T.l将节点发送到右侧或左侧 这是我目前的代码: def Solution(T): head=T arrayOfTree=[] arrayOfTree.append(T.x) return getDownLength(head,arrayOfTree) def getDownLength(head,arrayOfTree): if head.x not in a

因此,我需要找到一个二叉树的路径,其中包含最唯一的数字,并返回给定的最大长度
tree=T
T.x
分别返回节点的int和
T.r
T.
l将节点发送到右侧或左侧

这是我目前的代码:

def Solution(T):
head=T
arrayOfTree=[]
arrayOfTree.append(T.x)
return getDownLength(head,arrayOfTree)
def getDownLength(head,arrayOfTree):
     if head.x not in arrayOfTree:
        arrayOfTree.append(head.x)
     if head.l == None and head.r == None:
        return len(arrayOfTree)
     elif head.l == None:
        head=head.r
        return getDownLength(head,arrayOfTree)
     elif head.r == None:
        head=head.l
        return getDownLength(head,arrayOfTree)
     else:
        return max(getDownLength(head.l,arrayOfTree),getDownLength(head.r,arrayOfTree)
我在这里遇到的问题是,当您使用递归时,
arrayOfTree
不会恢复到其原始状态,我尝试使用
del-arrayOfTree[1:len(arrayOfTree)]
,但我认为这不适用于大输入


有什么帮助吗?

让我提个建议。制作一个很小的样本树,但是足够大,有多条路径,它必须左右移动。制作一个调用Solution的测试函数,看看它是否返回正确答案。给那棵小树修一下。让我提个建议。制作一个很小的样本树,但是足够大,有多条路径,它必须左右移动。制作一个调用Solution的测试函数,看看它是否返回正确答案。为那棵小树修好它。