以下是一个示例代码,展示了如何按降序获取具有多个子节点的父节点。
class Node:
def __init__(self, value):
self.value = value
self.children = []
def get_parent_nodes(node):
parent_nodes = []
def traverse(node):
if len(node.children) > 1: # 只考虑具有多个子节点的父节点
parent_nodes.append(node.value)
for child in node.children:
traverse(child)
traverse(node)
parent_nodes.sort(reverse=True) # 按降序排序
return parent_nodes
# 创建一个示例树
root = Node(1)
node2 = Node(2)
node3 = Node(3)
node4 = Node(4)
node5 = Node(5)
node6 = Node(6)
root.children = [node2, node3]
node2.children = [node4, node5]
node5.children = [node6]
# 获取具有多个子节点的父节点
result = get_parent_nodes(root)
print(result) # 输出 [2]
在上面的代码中,我们定义了一个Node
类来表示树的节点。Node
类有一个value
属性来存储节点的值,以及一个children
属性来存储节点的子节点列表。
get_parent_nodes
函数接受一个节点作为输入,并使用递归遍历树的所有节点。对于每个节点,如果它具有多个子节点(len(node.children) > 1
),则将其值添加到parent_nodes
列表中。
最后,我们对parent_nodes
列表进行降序排序,并返回结果。
在示例中,我们创建了一个具有多个子节点的父节点的示例树,并调用get_parent_nodes
函数来获取结果。输出结果为[2]
,表示节点2是唯一一个具有多个子节点的父节点。