Python全系列 教程
3567个小节阅读:5929.9k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
node_list = [
{'data': 'A', 'left': 'B', 'right': 'C', 'is_root': True},
{'data': 'B', 'left': 'D', 'right': 'E', 'is_root': False},
{'data': 'D', 'left': 'H', 'right': 'I', 'is_root': False},
{'data': 'E', 'left': 'J', 'right': None, 'is_root': False},
{'data': 'H', 'left': None, 'right': None, 'is_root': False},
{'data': 'C', 'left': 'F', 'right': 'G', 'is_root': False},
{'data': 'F', 'left': None, 'right': None, 'is_root': False},
{'data': 'G', 'left': None, 'right': None, 'is_root': False},
{'data': 'I', 'left': None, 'right': None, 'is_root': False},
{'data': 'J', 'left': None, 'right': None, 'is_root': False},
]
xxxxxxxxxx
class Node:
"""二叉树节点类"""
def __init__(self, val: int,left=None,right=None):
self.val: int = val # 节点值
self.left: Node | None = left # 左子节点引用
self.right: Node | None = right # 右子节点引用
class Tree(object):
def __init__(self, root=None):
self.root = root
def install_data(self,node_list):
node_dict = {}
for n in node_list:
node = Node(n['data'], n['left'], n['right'])
node_dict[n['data']] = node
for n in node_list:
node = node_dict[n['data']]
if node.left:
node.left = node_dict[node.left]
if node.right:
node.right = node_dict[node.right]
if n['is_root']:
self.root = node