首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

构建树中所有分支的列表

是指在一个树结构中,获取所有分支的路径列表。每个分支都是从根节点到叶子节点的路径。

树是一种非线性数据结构,由节点和边组成。每个节点可以有零个或多个子节点,除了根节点外,每个节点都有一个父节点。树的分支是从根节点到叶子节点的路径,其中叶子节点是没有子节点的节点。

构建树中所有分支的列表可以通过深度优先搜索(DFS)算法来实现。以下是一个示例代码,用于构建树中所有分支的列表:

代码语言:txt
复制
def find_branches(root, path, result):
    if not root:
        return
    
    # 将当前节点添加到路径中
    path.append(root)
    
    # 如果当前节点是叶子节点,将路径添加到结果列表中
    if not root.children:
        result.append(path[:])
    else:
        # 递归遍历子节点
        for child in root.children:
            find_branches(child, path, result)
    
    # 回溯,将当前节点从路径中移除
    path.pop()

# 示例树节点类
class TreeNode:
    def __init__(self, val=0, children=None):
        self.val = val
        self.children = children if children else []

# 构建示例树
root = TreeNode(1)
node2 = TreeNode(2)
node3 = TreeNode(3)
node4 = TreeNode(4)
node5 = TreeNode(5)
node6 = TreeNode(6)
node7 = TreeNode(7)

root.children = [node2, node3]
node2.children = [node4, node5]
node3.children = [node6, node7]

# 构建结果列表
branches = []
find_branches(root, [], branches)

# 打印结果列表
for branch in branches:
    print([node.val for node in branch])

以上代码将输出树中所有分支的列表:

代码语言:txt
复制
[1, 2, 4]
[1, 2, 5]
[1, 3, 6]
[1, 3, 7]

这个问题中没有明确要求推荐腾讯云相关产品,因此不提供产品链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券