You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将嵌套字典转换为二叉树并支持DFS/BFS遍历

嵌套字典转二叉树实现方案

核心逻辑说明

你给出的嵌套字典结构和二叉树节点结构完全匹配,递归是最容易理解的实现方式,不需要复杂的额外数据结构,逻辑链路完全和字典的嵌套层级对应:

  • 遇到空值(None)直接返回,对应二叉树的空节点
  • 每一层只处理当前字典对应的节点,子节点交给递归逻辑处理,最后返回当前构造完成的节点即可

完整代码实现

class Vertex:
    """二叉树的节点对象"""

    def __init__(self):
        """初始化节点对象
        属性
        ----------
        value : int
            节点存储的值
        left : None | Vertex
            节点的左孩子
        right : None | Vertex
            节点的右孩子
        """
        self.value = None
        self.left = None
        self.right = None


def dict_to_binary_tree(data):
    # 递归终止条件:当前传入的是None,对应空孩子节点
    if not data:
        return None
    # 构造当前节点
    current_node = Vertex()
    current_node.value = data["value"]
    # 递归构造左右子树
    current_node.left = dict_to_binary_tree(data["left"])
    current_node.right = dict_to_binary_tree(data["right"])
    # 返回构造好的当前节点
    return current_node


# 测试用的前序DFS遍历,验证构造结果是否正确
def dfs_preorder(node):
    if not node:
        return
    print(node.value, end=" ")
    dfs_preorder(node.left)
    dfs_preorder(node.right)


if __name__ == '__main__':
    t = {
        "value": 1,
        "left": {
            "value": 2,
            "left": {
                "value": 3,
                "left": None,
                "right": None
            },
            "right": {
                "value": 4,
                "left": None,
                "right": None
            }
        },
        "right": {
            "value": 2,
            "left": {
                "value": 4,
                "left": None,
                "right": None
            },
            "right": {
                "value": 3,
                "left": None,
                "right": None
            }
        }
    }
    root = dict_to_binary_tree(t)
    # 前序遍历输出:1 2 3 4 2 4 3 和预期结构匹配
    print("前序DFS遍历结果:")
    dfs_preorder(root)

输出验证

运行上述代码会输出前序遍历结果 1 2 3 4 2 4 3,和你给出的目标二叉树结构完全匹配。你也可以替换成BFS或者其他遍历方式验证构造结果。

内容的提问来源于stack exchange,提问作者Gonzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:27:05