如何在树中按顺序遍历时在列表中存储值?

2024-04-25 06:51:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试寻找一种有效且简单的方法来将树遍历的值(按顺序)存储在一个列表中以供进一步处理,但是我没有找到一个合适的方法来执行它。在

我想要它的原因是在树中找到模式。我尝试过global变量,但我不喜欢它,这会使代码看起来很糟糕。 我试过屈服函数,但似乎没什么用。(对此我还有一些希望)

def inorder(self,root):
        if not root:
            return 
        self.inorder(root.left)
        self.store(root.val)
        self.inorder(root.right)

谢谢, 优先权


Tags: 方法函数代码self列表if顺序def
1条回答
网友
1楼 · 发布于 2024-04-25 06:51:29

如果您使用的是pyhont3.3+,那么可以使用yield和{a1}:

class Node:

    def __init__(self, val, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

    def inorder(self, root):
        if not root:
            return
        yield from self.inorder(root.left)
        yield root.val
        yield from self.inorder(root.right)

        # # For Python 3.2-
        # for val in self.inorder(root.left):
        #     yield val
        # yield root.val
        # for val in self.inorder(root.right):
        #     yield val

用法:

^{pr2}$

相关问题 更多 >