中等
技术面试0 次浏览

给定一个二叉树,返回其层序遍历的结果。

算法工程师
二叉树层序遍历广度优先搜索

答题要点

二叉树的层序遍历可以使用广度优先搜索(BFS)来实现。思路是使用一个队列来存储每一层的节点,首先将根节点入队,然后不断从队列中取出节点,将其左右子节点入队,直到队列为空。以下是Python代码实现: python from collections import deque class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def levelOrder(root): if not root: return [] result = [] queue = deque([root]) while queue: level_size = len(queue) current_level = [] for _ in range(level_size): node = queue.popleft() current_level.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) result.append(current_level) return result 在这段代码中,使用队列queue来存储每一层的节点,使用current_level来存储当前层的节点值。时间复杂度为$O(n)$,因为每个节点都会被访问一次。空间复杂度为$O(n)$,主要用于队列的存储。