102. 二叉树的层序遍历
-
解题思路:层序遍历就用队列,唯一需要注意的就是,要每一层单独收集,所以要用一个变量,记录每一层需要收集的数目,同时还要记录下一层需要收集的数目
-
代码
class Solution: def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: if root == None: return [] queue = deque() ans = [] queue.append(root) cur_count = 1 # 本层还需要收集多少个 next_count = 0 # 下一层需要收集多少个 tmp = [] while queue: cur = queue.popleft() tmp.append(cur.val) if cur.left: queue.append(cur.left) next_count += 1 if cur.right: queue.append(cur.right) next_count += 1 cur_count -= 1 if cur_count == 0: ans.append(copy.copy(tmp)) tmp.clear() cur_count = next_count next_count = 0 return ans

浙公网安备 33010602011771号