# 使用二叉树的广度优先遍历作为模板 # Definition for a binary tree node. classTreeNode: def__init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right classSolution: deflevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: ifnot root: return []
stack = [root] # 用来存储每层的 node res = [] # 用来存储最后的结果 while stack: size = len(stack) # 用来标记每层在stack的位置 temp= [] # 用来存储每层的 value for i inrange(size): cur = stack.pop(0) temp.append(cur.val) if cur.left: stack.append(cur.left) if cur.right: stack.append(cur.right) res.append(temp)