题目描述
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例
- 输入:root = [3,9,20,null,null,15,7]
- 输出:[[3],[9,20],[15,7]]
题目解析
层序遍历就是将一颗树按照每一层每一层的方式从左至右进行遍历。可通过队列实现,一层一层的进队出队。
代码实现
# Python3
# 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: TreeNode) -> list:
from queue import Queue
res = []
if root is None:
return res
q = Queue()
q.put(root)
while not q.empty():
nums = q.qsize() # 获取二叉树当前层的节点数
tmp = []
for _ in range(nums):
# 依次遍历,再将下层节点放入队列
tmp_root = q.get()
if tmp_root.left:
q.put(tmp_root.left)
if tmp_root.right:
q.put(tmp_root.right)
tmp.append(tmp_root.val)
res.append(tmp)
return res
r = TreeNode(val=3,
left=TreeNode(9),
right=TreeNode(20,
left=TreeNode(15),
right=TreeNode(7))
)
print(Solution().levelOrder(r))
该文章介绍了一种使用队列进行二叉树层序遍历的方法,通过逐层添加节点到队列并处理当前层的节点,可以得到按层次排列的节点值列表。提供的Python代码展示了如何创建二叉树节点类以及实现层序遍历的解决方案。
1359

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



