Python 在树中查找节点的所有父节点

Python 在树中查找节点的所有父节点,python,graph,Python,Graph,我正在用python创建一棵树,我有一个方法可以找到从父节点到树的根节点的路径。具体如下: def get_sub_net(self, index): node = self.nodes[index] sub_net = [] sub_net.append(node) while node.parent is not None: node = node.parent sub_net.append(node) return s

我正在用python创建一棵树,我有一个方法可以找到从父节点到树的根节点的路径。具体如下:

def get_sub_net(self, index):
    node = self.nodes[index]
    sub_net = []
    sub_net.append(node)
    while node.parent is not None:
        node = node.parent
        sub_net.append(node)
    return sub_net[::-1]
现在我试图允许每个节点都有多个父节点,我遇到了麻烦

def sub_net(self, index):
    node = self.nodes[index]
    sub_net = []
    if node.parents == None:
        return sub_net
    else:
        sub_net += node.parents
        for i in node.parents:
            while i is not None:
                sub_net += i.parents
                node = i
                break
    return sub_net[::-1]
@诺雷丁·凯萨指出,这将是一个图形,而不是一棵树,这是正确的。然而,我也解决了我自己的问题,我使用的解决方案是

def recursive_sub_net(self, node):
    sub_net = []
    sub_net.append(node)

    if node.parents is not None:
        for i in node.parents:
            sub_net += self.recursive_sub_net(i)

    return sub_net

根据定义,树中的每个节点都有一个父节点(并且可以有多个祖先),如果需要使用节点网络(而不是树),则应该使用图形