法1:BFS,最佳方法

版本1:修改原TreeNode
Python
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def widthOfBinaryTree(self, root: Optional[TreeNode]) -> int:
res = 0
queue = collections.deque()
root.val = 1
queue.append(root)
while queue:
tmpSize = len(queue)
start, end = -1, -1
for i in range(tmpSize):
curNode = queue.popleft()
val = curNode.val
if i == 0:
start = curNode.val
if i == tmpSize - 1:
end = curNode.val
if curNode.left:
curNode.left

本文介绍了两种方法解决二叉树宽度问题:一种是修改原TreeNode结构,另一种是构建新TreeNode。两种方法都使用BFS遍历,通过广度优先搜索计算二叉树的最大宽度。
最低0.47元/天 解锁文章
136

被折叠的 条评论
为什么被折叠?



