题解 | #从上往下打印二叉树#
从上往下打印二叉树
https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param root TreeNode类 # @return int整型一维数组 # import queue class Solution: def PrintFromTopToBottom(self , root: TreeNode) -> List[int]: # write code here # 队列辅助层次遍历方法 res = [] if root == None: return None q = queue.Queue() q.put(root) while not q.empty(): cur = q.get() res.append(cur.val) if cur.left: q.put(cur.left) if cur.right: q.put(cur.right) return res
- Python中使用队列要import一下 queue,先进先出 依次出队
- queue里面的Queue方法介绍
主要类
- QueueFIFO(先进先出)队列。常用方法:put(item, block=True, timeout=None):将项目放入队列。如果 block 为 True,且队列已满,则会阻塞直到空间可用。get(block=True, timeout=None):从队列获取项目。如果 block 为 True,且队列为空,则会阻塞直到有项目可用。
- LifoQueueLIFO(后进先出)队列,也称为栈。方法与 Queue 类似,但插入和删除顺序不同。
- PriorityQueue优先队列,按照优先级对项目进行排序。项目以元组的形式插入,优先级数字越小表示优先级越高。
剑指offer刷题笔记 文章被收录于专栏
24秋招剑指offer刷题的笔记