【剑指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
class Solution:
    # 返回二维列表[[1,2],[4,5]]
    def Print(self, pRoot):
        res = []
        self.level(pRoot, 0, res)
        return res

    def level(self, root, level, res):
        if not root: return
        if level == len(res):
            res.append([])
        res[level].append(root.val)
        if root.left:
            self.level(root.left, level + 1, res)
        if root.right:
            self.level(root.right, level + 1, res)

Date

2018 年 3 月 28 日 – 北京雾霾+沙尘暴,我的天。。

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