Tree 有效的树遍历基本情况和指针 我现在正在把我的C++技能移植到Python中。关于树遍历,我想知道哪些典型的基本情况用于检测分支的结束,因为python不使用指针。通常在C++中,你将通过引用传递下一个节点,并检查它是否为空。以下所附的代码样本有效;但是,这些if语句是否存在可能导致其他示例出错的潜在区域?我阅读了另一个答案,您可以检查self.data=None,但我不太清楚为什么会这样(在我的示例中它不起作用)。谢谢大家! def inOrder(self, list3): if self.left: self.left.inOrder(list3) list3.append(self.data) if self.right: self.right.inOrder(list3)

Tree 有效的树遍历基本情况和指针 我现在正在把我的C++技能移植到Python中。关于树遍历,我想知道哪些典型的基本情况用于检测分支的结束,因为python不使用指针。通常在C++中,你将通过引用传递下一个节点,并检查它是否为空。以下所附的代码样本有效;但是,这些if语句是否存在可能导致其他示例出错的潜在区域?我阅读了另一个答案,您可以检查self.data=None,但我不太清楚为什么会这样(在我的示例中它不起作用)。谢谢大家! def inOrder(self, list3): if self.left: self.left.inOrder(list3) list3.append(self.data) if self.right: self.right.inOrder(list3),tree,traversal,Tree,Traversal,这就是在树中定义节点的方式 class Node: def __init__(self,val): self.data = val self.left = None self.right = None 现在让我们声明一个值为10的节点temp temp = Node(10) 假设您想检查temp是否为叶节点,您可以执行以下操作: if temp.left == None and temp.right == None: print

这就是在树中定义节点的方式

class Node:
    def __init__(self,val):
        self.data = val
        self.left = None
        self.right = None
现在让我们声明一个值为10的节点
temp

temp = Node(10)
假设您想检查
temp
是否为叶节点,您可以执行以下操作:

if temp.left == None and temp.right == None:
    print('leaf node')
    return
现在,如果您已经遍历了叶节点,并且正在检查节点是否确实存在,您将执行以下操作:

temp2 = temp.left
if temp2 == None:
    #abc

不确定为什么
self.data=None
会起作用,在这种情况下,您正在声明一个节点,但没有为其分配任何数据

这可能会在检查叶节点时失败,因为我们正在检查是否存在左或右节点。最好创建一个具有值的节点

if not temp2:
    #abc