【剑指Offer】从上往下打印二叉树 解题报告(Python)

【剑指Offer】从上往下打印二叉树 解题报告(Python)

标签(空格分隔): 剑指Offer


题目地址:https://www.nowcoder.com/ta/coding-interviews

题目描述:

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

解题方法

使用队列保存,每次把队列里的原先内容进行出队列操作,再把每个元素的非空左右子节点进入队列。因此即可得到每层的遍历。

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
from collections import deque
class Solution:
    # 返回从上到下每个节点值列表,例:[1,2,3]
    def PrintFromTopToBottom(self, root):
        if not root: return []
        queue = deque()
        res = []
        queue.append(root)
        while queue:
            _len = len(queue)
            for i in range(_len):
                node = queue.popleft()
                res.append(node.val)
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
        return res

Date

2018 年 3 月 19 日

你可能感兴趣的:(算法,牛客网,剑指offer)