您的位置:首页 > 文旅 > 旅游 > [LeetCode]102.二叉树的层序遍历(python)

[LeetCode]102.二叉树的层序遍历(python)

2024/12/23 10:01:36 来源:https://blog.csdn.net/xyhaaab/article/details/141527691  浏览:    关键词:[LeetCode]102.二叉树的层序遍历(python)

1.代码

from collections import deque
from typing import List
# 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 levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: i = 0queue = deque()result : List[List[int]] = []if root==None:return resultqueue.append(root)while(queue):length = len(queue)result.append([])for j in range (length):item = queue.popleft()if item.left:queue.append(item.left)if item.right:queue.append(item.right)result[i].append(item.val)i=i+1return result

2.思路

用一个队列控制遍历,一开始队列中只有root,每一次通过检查队列的长度,控制出队的元素个数恰好为一层的个数。每次一个元素出队,依次将它的左右子节点入队,并计入result中对应数组。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com