方法:层次遍历
这道题就是一个模板题,对队列的使用。因为要满足先进先出的特性。
- 初始化:一个队列queue<TreeNode*> q, 将root节点入队列q
- 如果队列不空,做如下操作:
- 弹出队列头,保存为node,将node的左右非空孩子加入队列
- 做2,3步骤,知道队列为空
Python 代码:
class Solution: # 返回从上到下每个节点值列表,例:[1,2,3] def PrintFromTopToBottom(self, root): # write code here if root is None: return None queue = [] queue.append(root) num_list = [] while queue: node = queue.pop(0) if node.left: queue.append(node.left) if node.right: queue.append(node.right) num_list.append(node.val) return num_list参考资料: