class Node:
def __init__(self, value, left=None, right=None):
self.value = value
self.left = left
self.right = right
self.parent = None
def get_max_width_with_map(node):
print('The max width of the tree is: ', end=" ")
if node is not None:
queue = []
level_map = {} # 记录每一个节点的所处层
queue.append(node) # 放入头节点
level_map[node] = 1 # 设置头节点所在层
cur_level = 1 # accumulator -> 记录遍历的层数
cur_level_nodes = 0 # 储存当前层所遍历的节点数
max_ = 0
while len(queue) > 0:
cur_node = queue.pop(0)
cur_node_level = level_map[cur_node]
# 分别遍历左右两个节点,并保存其所在层数:当前节点层+1
if cur_node.left is not None:
queue.append(cur_node.left)
level_map[cur_node.left] = cur_node_level + 1
if cur_node.righ
左神算法系列(Python代码):二叉树套路题
于 2022-04-20 05:26:16 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)